Package Populer untuk Next Project Laravel Anda

mithicher
I Wayan Adi Sparta Dec, 06 2022 08:07 AM
147

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

Persiapan

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.

Composer Version

Namun apabila belum, anda harus menginstall dan mengkonfigurasinya terlebih dahulu.

Laravel Datatables

Laravel Datatable

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.

Datatable Plugin

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

Laravel Collective Html

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

Laravel Sluggable

Laravel Sluggable

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.

Socialite

Laravel Socialite

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.

Laravel Excel

Laravel Excel

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:

  • PHP: ^7.2\|^8.0
  • Laravel: ^5.8
  • PhpSpreadsheet: ^1.15
  • PHP extension php_zip enabled
  • PHP extension php_xml enabled
  • PHP extension php_gd2 enabled
  • PHP extension php_iconv enabled
  • PHP extension php_simplexml enabled
  • PHP extension php_xmlreader enabled
  • PHP extension php_zlib enabled

Untuk penggunaan lebih lanjut, anda dapat mempelajarinya dari website resminya di https://laravel-excel.com/.

Laravel Telescope

Laravel Telescope

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

Penutup

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.

Sumber

  1. https://datatables.net/
  2. https://github.com/yajra/laravel-datatables
  3. https://laravelcollective.com/
  4. https://github.com/spatie/laravel-sluggable
  5. https://laravel.com/docs/8.x/socialite
  6. https://laravel-excel.com/
Tags:
PHP
Laravel
Package
Datatable
Html Collective
Sluggable
Socialite
Excel

Saya bisa membuatkan anda Aplikasi berkualitas

© 2021 Adisparta. All rights reserved.