Selain menggunakan fitur standar dari framework, sebagai developer juga memerlukan plugin atau package tambahan untuk mengembangkan project tergantung dari fitur yang diperlukan project tersebut maupun untuk membantu developer dalam mempercepat pengerjaan. Terlebih aplikasi yang kita kembangkan memiliki fitur yang banyak dan rumit. Tidak dipungkiri kita harus menggunakan package tambahan untuk lebih memudahkan dan mempercepat pengembangan sistem. Pada artikel ini, saya akan menyajikan beberapa package Laravel populer yang sering digunakan dalam mempermudah pengembangan sistem.
Baca juga artikel mengenai Membuat Project Laravel Menggunakan Composer
Sebelum dapat menginstall package tambahan Laravel, anda sebelumnya sudah harus memiliki composer dan terdata pada PATH variable. Cara untuk mengecek ketersediaan composer pada perangkat anda adalah dengan mengetikan command berikut pada command prompt atau terminal.
composer --version
Nah, output dari perintah diatas harusnya menampilkan versi composer yang telah terinstall diperangkat anda.
Namun apabila belum, anda harus menginstall dan mengkonfigurasinya terlebih dahulu.
Apakah anda pernah mendengan jQuery Datatable? JQuery Datatable merupakan plugin yang dapat dipergunakan untuk memanipulasi table dalam html. Adapun manipulasi yang dimaksud adalah dari segi ordering, searching, pagination dan lain-lain. Tujuan dari penggunaan plugin ini adalah agar tampilan tabel menjadi lebih dinamis dan mudah dipergunakan oleh user. Contohnya dapat anda lihat ditabel dibawah ini.
Dari tabel tersebut anda dapat lihat bahwa tampilan tabel diatas menjadi lebih dinamis dan akan menjadi lebih mudah untuk dilihat oleh user dibandingkan menggunakan table html biasa.
Nah kembali lagi ke Laravel Datatable, package ini dipergunakan untuk mengintegrasikan jQuery Datatable dari segi server side processing.
Apabila menggunakan service side processing, jQuery Datatable memerlukan data dalam bentuk berikut untuk di render.
{
"draw": 1,
"recordsTotal": 57,
"recordsFiltered": 57,
"data": [
[
"Angelica",
"Ramos",
"System Architect",
"London",
"9th Oct 09",
"$2,875"
],
[
"Ashton",
"Cox",
"Technical Author",
"San Francisco",
"12th Jan 09",
"$4,800"
],
...
]
}
Code dari server side yang harus kita siapkan sebelumnya harus berbentuk seperti data diatas. Nah ketika ada trigger dari jQuery Datatable seperti sorting, searching, dan navigasi page anda perlu melakukan query ulang pada eloquent. Laravel Datatable bertujuan untuk memudahkan anda dalam melakukan query tersebut, artinya anda tidak perlu melakukan query ulang ketika terjadi trigger tersebut.
Untuk installasi package ini, anda perlu menggunakan composer untuk menginstallnya.
composer require yajra/laravel-datatables-oracle:"~9.0"
Setelah package tersebut berhasil diinstall, anda dapat menggunakan class DataTables
pada controller. Berikut merupakan salah satu contoh sederhana penggunaan Laravel Datatable.
public function getUser() {
$model = App\User::query();
return DataTables::of($model)->toJson();
}
Untuk dokumentasi lebih lanjut, anda dapat melihat pada halaman resmi dari package ini di https://yajrabox.com/docs/laravel-datatables/master
Laravel Collective Html merupakan package yang dipergunakan untuk mempermudah anda memanipulasi form. Sebagai contoh, ketika anda membuat inputan text anda akan membuatnya seperti berikut:
<form action="{{ route('save-action') }}">
<input type="text" name="nama_lengkap" required/>
</form>
Nah namun ketika anda membuat form text pada formulir edit, maka text inputan akan seperti berikut:
<form action="{{ route('edit-action') }}">
<input type="text" name="nama_lengkap" required value="{{ $user->nama_lengkap }}"/>
<form>
Dengan menggunakan laravel collective, anda akan dipermudah dalam pembuatan formulir tersebut. Berikut merupakan contoh dari penggunaan Laravel Collective untuk form create.
{!! Form::open(['route' => 'save-action']) !!}
{!! Form::text('nama_lengkap', null) !!}
{!! Form::close() !!}
Sedangkan berikut merupakan contoh pembuatan formulir untuk edit.
{!! Form::model($user, ['route' => 'save-action']) !!}
{!! Form::text('nama_lengkap', null) !!}
{!! Form::close() !!}
Dari code diatas, dapat dilihat saya tidak menampilkan kolom nama_lengkap
pada inputan nama_lengkap
, . Namun package ini yang secara otomatis akan menampilkannya sesuai parameter model yang saya pergunakan pada saat membuat tag
form
. Hal ini juga berlaku untuk inputan textare
, radio button
, select
, dan checkbox
. Dengan package ini, anda akan mendapat banyak kemudahan apalagi formulir yang ada buat memiliki inputan yang banyak.
Anda dapat menginstall Laravel Collective dengan menggunakan sintak dibawah ini:
composer require laravelcollective/html
Dokumentasi lebih lanjut dari package ini dapat anda lihat pada halaman resminya pada https://github.com/laravelcollective/html
Apabila anda anda sering membuat website berbentuk blog, artikel atau pengumuman, anda wajib menginstall package satu ini. Laravel Sluggable merupakan package yang dapat anda pergunakan untuk membuat url anda lebih user frendly, package ini berfungsi untuk membuatkan slug yang unique.
Apa itu slug? Slug merupakan sebuah unique key yang dapat digunakan untuk mengidentifikasi url tertentu. Slug biasanya digenerate dari judul postingan, contohnya apabila anda memiliki judul postingan Tutoral Laravel Pemula maka slug dari postingan tersebut adalah tutorial-laravel-pemula
. Slug inilah yang dapat anda pergunakan sebagai indentifier untuk menampilkan halaman disamping menggunakan primary key seperti id
. Misalkan apabila anda awalnya menampilkan sebuah postingan dengan id
primary key yang awalnya urlnya adalah https://adisparta.xyz/blog/1, sekarang anda dapat mengubahnya menjadi https://adisparta.xyz/blog/tutorial-laravel-pemula. Bisa dilihatkan, url tersebut lebih enak untuk dilihat dan lebih seo friendly.
Nah, Laravel Sluggable sendiri merupakan package yang dapat dipergunakan untuk menggenerate slug secara otomatis. Anda hanya perlu menambahkannya konfigurasi pada Model, maka package ini yang nantinya akan memprosesnya. Plugin ini juga secara otomatis sudah langsung mengecek ke-unique-an dari slug tersebut. Misalkan anda sebelumnya memposting tulisan dengan judul Tutorial Laravel Pemula yang ber-slug tutorial-laravel-pemula
. Apabila anda memposting dengan judul yang sama lagi maka slug dari postingan kedua anda akan menjadi tutorial-laravel-pemula-1
.
composer require spatie/laravel-sluggable
Adapun contoh penggunaanya dapat anda lihat dibawah ini:
namespace App;
use Spatie\Sluggable\HasSlug;
use Spatie\Sluggable\SlugOptions;
use Illuminate\Database\Eloquent\Model;
class YourEloquentModel extends Model
{
use HasSlug;
/**
* Get the options for generating the slug.
*/
public function getSlugOptions() : SlugOptions
{
return SlugOptions::create()
->generateSlugsFrom('name')
->saveSlugsTo('slug');
}
}
Dilihat dari code diatas, plugin akan menggunakan kolom name
dari Model. Sedangkan slug yang telah dibuat akan disimpan ke field slug
. Dokumentasi resmi yang lebih lengkap lagi dapat anda lihat pada halaman https://github.com/spatie/laravel-sluggable.
Apabila anda sering membuat website yang memperbolehkan user untuk membuat akun pada web anda, maka anda wajib menggunakan package Laravel Socialite. Package ini dapat anda pergunakan untuk memudahkan anda dalam mengintegrasikan login dan register dari media social seperti dari akun Google, Facebook, Github, dan lain-lain. Plugin ini dapat anda install dengan command berikut:
composer require laravel/socialite
Contoh penggunaannya dapat anda lihat pada code snippet dibawah ini
Route::get('/auth/callback', function () {
$user = Socialite::driver('github')->user();
});
Code diatas adalah contoh mengambil data user dengan menggunakan media social atau driver http://github.com/. Package ini hanya menghandle data akun user dari sisi backend. Anda tetap harus menghandle dari sisi frontend untuk komunikasi anda website anda dengan media social yang akan dipergunakan.
Tutorial lebih lanjut dapat anda temui dihalaman resminya di https://laravel.com/docs/8.x/socialite.
Untuk anda yang sering membuat website yang memiliki fungsionalitas export ataupun import data khusunya dalam bentuk excel, anda cocok menggunakan package ini. Laravel Excel memiliki beragam fungsi yang berguna untuk memanipulasi data berupa excel.
composer require maatwebsite/excel
Package ini memiliki 2 fitur utama dalam penggunaannya. Pertama untuk melakukan export data baik dalam bentuk Excel maupun CSV. Dan yang kedua untuk kebutuhan import data berupa Excel maupun CSV.
Sebelum anda dapat menggunakan package ini, pastikan anda telah memenuhi requirementnya berupa:
^7.2\|^8.0
^5.8
^1.15
php_zip
enabledphp_xml
enabledphp_gd2
enabledphp_iconv
enabledphp_simplexml
enabledphp_xmlreader
enabledphp_zlib
enabledUntuk penggunaan lebih lanjut, anda dapat mempelajarinya dari website resminya di https://laravel-excel.com/.
Package ini merupakan salah satu package resmi Laravel. Kegunaan package ini adalah untuk memonitoring request, log, cache, dan lain-lain pada project Laravel anda. Anda juga dapat melihat query yang berjalan pada setiap request pada plugin ini. Anda akan disajikan UI yang cukup nyaman untuk memonitoring project anda anda.
Untuk penggunaan package ini cukup mudah. Anda hanya perlu menginstallnya kemudian anda sudah dapat menggunakannya. Untuk lebih lanjut, anda dapat mempelajarinya pada website resminya di https://laravel.com/docs/8.x/telescope
Package atau plugin merupakan suatu yang kita perlukan dalam membantu kita mengembangkan suatu sistem. Namun semakin banyak package yang dipergunakan, maka semakin lambat pula project anda berjalan. Dengan demikian, anda harus pandai-pandai memilah dan menggunakan plugin yang harus terpasang pada project anda. Dari saya, beberapa package diatas merupakan package yang sangat membantu saya mengembangkan sistem selama ini, apabila anda memiliki rekomendasi plugin tambahan jangan lupa untuk memberikan komentar agar saya bahas di postingan selanjutnya. Terimakasih.
Pernahkan anda memilliki project yang secara terjadwal melakukan suatu aksi? Misalkan anda memiliki sebuah website yang menampung data user termasuk tanggal lahirnya. Anda menambahkan suatu fitur tamb...
Setelah kita selesai mengembangkan website, perlu halnya untuk mendeploy aplikasi tersebut ke VPS maupun share hosting. Nah disesi kali ini, saya akan menampilkan bagaimana langkah-langkah untuk mende...
Single Page Application (SPA) merupakan teknologi javascript dalam aplikasi web atau situs web yang berinteraksi dengan pengguna secara dinamis menampilkan halaman web saat ini dengan data baru dari s...
Saya bisa membuatkan anda Aplikasi berkualitas Tertarik mengembangkan aplikasi? Hubungi saya sekarang untuk mendapatkan penawaran terbaik