~ We are changing the world with technology. ~

Matt Mullenweg

Rekomendasi Package Laravel Yang Dapat Mempermudah Pekerjaan Kamu

Rekomendasi Package Laravel Yang Dapat Mempermudah Pekerjaan Kamu

1820 Dilihat

Pendahuluan

Dewasa ini penggunaan framework menjadi kian diminati oleh banyak orang, selain karena mengikuti trend yang sedang berlangsung juga karena memang peran framework yang dapat menunjang dan mempercepat pekerjaan kita menjadi salah satu alasan yang tak bisa membuat kita berpaling darinya.

Dengan adanya framework, para developer berlomba untuk menciptakan sebuah package atau paket tambahan untuk sebuah framework tersebut agar kegiatan yang sering kali dilakukan dapat dipersingkat ke dalam sebuah package sehingga kita tidak perlu lagi melakukan hal yang sama secara berulang kali.

Lalu apa saja sih package yang menjadi rekomendasi untuk digunakan guna menunjang pekerjaan kita?

Baca Juga: Mengolah Data Relasi Antar Table Menggunakan Eloquent

Laravel & Piranti Pendukungnya

Laravel adalah salah satu dari sekian deretan framework PHP paling populer saat ini, bagaimana tidak, selain mengusung keunikannya, Laravel juga hadir dengan beragam fitur dan kemampuan yang benar-benar ajaib. Sebagai contoh dalam mengakses database yang berelasi, kita disediakan opsi yang beragam untuk menyelesaikan masalah tersebut, hal ini tentu saja menjadi sangat menarik bagi developer karena dengan beragam cara yang tersedia membuat kita bisa berkreasi sejauh mungkin sesuai dengan kemampuan masing-masing penggunanya.

Package juga hadir sebagai opsi lain dalam memecahkan masalah yang sedang dihadapi sekaligus cara lain untuk berkreasi dalam men-develop sebuah aplikasi. Berikut beberapa package yang kami rekomendasikan karena kebermanfaatannya serta kepopulerannya dikalangan developer Laravel.

  1. Spatie Role & Permission

    Sebuah role & permission menjadi sangat penting dalam aplikasi, sebab kegunaannya dapat menentukan hak-hak user dalam menggunakan aplikasi tersebut. Spatie hadir menawarkan package yang dimilikinya untuk membantu developer dalam membuat sebuah sistem role & permission. Fitur yang dimilikinya mencakup: Role, Permisssion, Direct Permissions, Middleware, Muptiple Blade Directive, Artisan Commands. Adapun repository-nya dapat dilihat di Github. Daengweb juga memiliki artikel yang membahas tentang cara penggunaannya dengan judul Membuat Aplikasi POS (Point of Sales) Laravel 5.6 - Role & Permission.

  2. Sentinel Role Permission

    Seiring dengan Spatie, Cartalyst juga mengeluarkan sebuah package yang bertujuan untuk mengatur permission pada sebuah aplikasi, package ini bernama Sentinel. Fitur yang dimilikinya terbilang cukup lengkap karena telah meng-handle sistem authorization. Adapun fiturnya diantaranya: Authentication, Authorization, Registration, Users & Role Management, Driver Based Permission System, Flexibel Activation Scenario, Reminders (Reset Password), Inter-account throttling with DDoS protection, Custom hashing strategies, Multiple Sessions, Multiple login columns, Integration with Laravel, Allow use of multiple ORM implementations, Native facade for easy usage outside Laravel, Interface driven (your own implementations at will).

  3. Laravel Debugbar

    Laravel debugbar adalah salah satu package yang sangat berguna dalam proses development, package ini akan menambahkan sebuah toolbar yang berisi banyak tools untuk proses debugging. Salah satu hal yang menarik digunakan adalah tool untuk mendeteksi berapa banyak query yang berjalan dalam sebuah halaman. Adapun repository dan dokumentasinya (semoga kedepannya dapat ikut mengulas package ini) dapat kamu lihat di Github.

  4. Socialite

    Socialite menawarkan fungsi yang menarik bagaimana cara mudah untuk menangani OAuth authentication. Hal ini memungkinkan user untuk melakukan otentikasi menggunakan jejaring social yang populer, dimana service yang mereka sediakan, diantaranya: Facebook, Twitter, Google, Github dan Bitbucket.

    Adapun penggunaannya terbilang sangat sederhana, berikut contoh code dalam menggunakan Socialite.

    $user = Socialite::driver('facebook')->user();
    
    // OAuth Two Providers
    $token = $user->token;
    $refreshToken = $user->refreshToken; // not always provided
    $expiresIn = $user->expiresIn;
    
    // All Providers
    $user->getId();
    $user->getName();
    $user->getEmail();
    $user->getAvatar();
    
  5. Laravel Mix

    Salah satu package bawaan Laravel yang sangat berguna bagi frontend developer untuk melakukan compile yang terkait dengan frontend adalah dengan menggunakan Laravel Mix. Package ini sangat powerful untuk meng-handle assets dari aplikasi yang ada miliki dengan menggunakan webpack-builder.

    mix.js('resources/assets/js/app.js', 'public/js')
    .sass('resources/assets/sass/app.scss', 'public/css');
    

  6. Eloquent Sluggable

    Slug adalah konversi title menjadi sebuah uniq string yang biasanya digunakan sebagai pengenal dalam sebuah URL. Misalnya saja, https://localhost.com/eloquent-sluggable, maka kata eloquent-sluggable adalah slug yang dimiliki dari domain localhost.com. Slug biasanya merujuk pada title dengan me-replace spasi yang dimilikinya menjadi -. Sebenarnya hal ini dapat dilakukan menggunakan kombinasi antara Mutators dan helper Str::slug milik Laravel.

    Akan tetapi bagi kamu yang tidak ingin direpotkan dengan membuat logic-nya sendiri, maka package Eloquent-Sluggable ini sangat berguna untuk mengatasi masalah kamu. Penggunaannya pun cukup dengan cara sebagai berikut.

    class Post extends Eloquent
    {
       use Sluggable;
       protected $guarded = [];
    
       public function sluggable() {
           return [
               'slug' => [
                   'source' => ['title']
               ]
           ];
       }
    }
    
    $post = new Post([
       'title' => 'Rekomendasi Package Laravel Yang Dapat Mempermudah Pekerjaan Kamu',
    ]);
    
    // Maka $post->slug nya adalah "rekomendasi-package-laravel-yang-dapat-mempermudah-pekerjaan-kamu"
    
  7. Migration Generator

    Pernah tidak kamu menemui sebuah kondisi dimana database yang akan digunakan dalam sebuah project sudah tersedia dari aplikasi sebelumnya, sehingga terkadang menjadi pekerjaan yang cukup melelahkan apabila harus mengkonversi semua struktur database tersebut menjadi sebuah file migrations agar lebih mudah di-handle kedepannya. Package Migration Generator menawarkan sebuah solusi untuk men-generate file migration dari existing database, termasuk indexes dan foreign keys.

    Command yang dimilikinya cukup sederhana, hanya dengan command:

    php artisan migrate:generate
    

    Perintah diatas akan men-generate seluruh table yang dimiliki menjadi file migrations, adapun jika kamu hanya akan men-generate table tertentu saja maka tersedia command:

    php artisan migrate:generate table1,table2
    
  8. Laravel Backup

    Data menjadi hal yang teramat penting bagi sebuah aplikasi melebihi aplikasinya itu sendiri. Mengapa demikian? Karena apabila kehilangan source code aplikasi maka kita dapat membuatnya kembali dengan referensi data yang dimiliki, akan tetapi jika kita kehilangan data yang telah dikumpulkan selama beberapa waktu yang lama, maka tentu saja akan menjadi musibah besar bagi anda.

    Laravel Backup adalah sebuah package yang berfungsi sesuai namanya yakni membuat salinan berupa zip file dari seluruh file dan database pada aplikasi yang kita miliki. Selanjutnya file zip tersebut dapat kita pindahkan secara manual ke tempat penyimpanan lain. Adapun untuk menjalankan fungsi backup-nya hanya dengan command:

    php artisan backup:run
    
  9. No Captcha

    Spammer telah ada dari zaman purbakala sepertinya hingga saat ini, maka teramat sangat menyebalkan apabila aplikasi kita digunakan oleh spammer. Terdapat sebuah package bernama No Captcha yang berfungsi untuk menerapkan Google reCaptcha validation yang akan melindungi sebuah form dari kegiatan spamming.

    Adapun code-nya terbilang sederhana penggunaannya dengan cara:

    NoCaptcha::shouldReceive('verifyResponse')
       ->once()
       ->andReturn(true);
    
    $response = $this->json('POST', '/daftar', [
       'g-recaptcha-response' => '1',
       'name' => 'Anugrah Sandi',
       'email' => '[email protected]',
       'password' => 'secret',
       'password_confirmation' => 'secret',
    ]);
    

  10. Laravel graphQL

    GraphQL adalah data query language yang berfungis sebagai alternatif sekaligus sebuah konsep baru untuk membuat struktur REST API. Pada Laravel terdapat sebuah package yang dapat membantu kamu untuk menerapkan penggunakan graphQL pada aplikasi yang sedang kamu develop, package tersebut bernama Laravel graphQL.

  11. Laravel Dompdf

    Terkadang kita membutuhkan sebuah laporan dengan format pdf guna berbagai keperluan administrasi dari pengguna aplikasi tersebut, maka di Laravel juga terdapat sebuah package yang dimana terusan dari library Dompdf, package tersebut bernama Laravel dompdf.

    Pada beberapa kasus Daengweb sudah membahas bagaimana cara menggunakan package tersebut, salah satunya kasus Membuat Aplikasi Invoice Laravel 5.7.

  12. Laravel Excel

    Selain laporan dengan format Pdf, Excel juga manjadi salah satu opsi yang terkadang dibutuhkan oleh pengguna sebuah aplikasi. Cara mudah dalam membuat laporan excel di Laravel adalah dengan menggunakan package Laravel Excel, dimana pada package ini telah mendukung hingga versi Laravel yang terbaru.

    Daengweb juga pernah membahas bagaimana cara menggunakan package ini pada sebuah artikel dengan judul Membuat Laporan Excel 3.0.

Baca Juga: Aplikasi Laundry (Laravel 5.8 - Vue.js - SPA) #3: Management Outlets

Kesimpulan

Package hadir dalam rangka membantu mempermudah pekerjaan developer, dimana mungkin saja beberapa package dibuat untuk meringankan pekerjaan pembuat package tersebut akan tetapi banyak orang yang mengalami hal yang sama maka di-release secara public.

Secara default, Laravel hadir dengan susunan beberapa "package" sehingga menjadi sebuah framework yang siap digunakan guna berbagai kepentingan penggunanya.

Full Stack Developer & Remote Worker salah satu perusahaan asal Australia. Senang dengan teknologi baru. Laravel addict yang tidak fanatik. Merekam jejak dengan menulis

Aplikasi Laundry (Laravel 5.8 - Vue.js - SPA) #12: Payment & Detail Transaksi Laravel VueJS

Aplikasi Laundry (Laravel 5.8 - Vue.js -...

Setelah menyelesaikan fitur untuk mencatat transaksi yang telah dilakukan oleh user, maka tugas selanjutnya adalah membuat fitur untuk meng-input data pembayaran. Setiap transaksi memiliki 1 data pemb...

Aplikasi Laundry (Laravel 5.8 - Vue.js - SPA) #11: Modul Transaksi Part 3 Laravel VueJS

Aplikasi Laundry (Laravel 5.8 - Vue.js -...

Titipan cerita dari part sebelumnya dimana terdapat bug tentang waktu yang dibutuhkan untuk mengerjakan pesanan sesuai layanan yang digunakan oleh pelanggan. Maka pada seri membuat aplikasi laundry la...

Aplikasi Laundry (Laravel 5.8 - Vue.js - SPA) #10: Modul Transaksi Part 2 Laravel VueJS

Aplikasi Laundry (Laravel 5.8 - Vue.js -...

Adapun schema yang diinginkan untuk form customer adalah ketika user ingin menambahkan customer baru, maka terdapat sebuah tombol untuk membuka form tersebut. Jika penambahan data customer berhasil di...

Komentar