Sampai episode ke-23 ini saya sudah bisa routing, buat controller, validasi form, sampai API. Yang saya sadari belakangan: hampir semua fitur yang saya kira harus bikin sendiri ternyata sudah ada paket siap pakai di ekosistem Laravel. Di catatan ini saya rangkum tiga paket yang paling sering saya temui saat membaca proyek orang lain — Breeze, paket Spatie, dan Debugbar — plus kapan sebaiknya dipakai dan kapan sebaiknya tidak.
Kenapa paket eksternal itu wajar
Awalnya saya ragu memasang paket pihak ketiga — takut konflik, takut project-nya berhenti di-maintain. Tapi Laravel punya Composer sebagai pengelola dependensi, jadi memasang paket sama seperti npm install di dunia JavaScript: tinggal butuh, pasang, kalau tidak butuh cabut lagi. Yang saya pelajari: yang penting bukan “banyak paket”, tapi paketnya dipilih dengan pertimbangan — cek jumlah bintang, riwayat update, dan apakah dokumentasinya jelas. Paket yang tidak terurus selama setahun lebih saya hindari.
Breeze vs Jetstream: scaffolding autentikasi
Dua-duanya menyelesaikan masalah yang sama: bikin halaman login, register, lupa password, dan reset password tanpa saya menulis dari nol. Bedanya di kedalaman fitur. Breeze ringan — login/register/verification, pilihannya Blade murni atau Inertia. Jetstream lebih lengkap: two-factor authentication, API token, dan tim/permission, dengan pilihan tampilan Livewire atau Inertia. Untuk proyek kecil atau belajar, saya pilih Breeze; kalau butuh 2FA dan manajemen tim, baru Jetstream.
Cara memasangnya simpel — satu perintah Artisan:
# Breeze: pilih stack saat ditanya (Blade / React / Vue / Inertia) composer require laravel/breeze --dev php artisan breeze:install # Jetstream: fitur lebih lengkap (2FA, token, tim) composer require laravel/jetstream php artisan jetstream:install livewire
Setelah itu jangan lupa migrate dan buat user uji lewat php artisan migrate lalu tes login di browser. Ini yang saya praktikkan: pakai Breeze sebagai titik awal, bukan sebagai final — halaman yang tidak dipakai bisa saya hapus belakangan.
Paket Spatie: permission dan media library
Keluarga paket Spatie (perusahaan Belgia) adalah yang paling sering saya temui di proyek Laravel produksi. Dua yang paling relevan buat saya: laravel-permission untuk role & permission, dan laravel-medialibrary untuk mengelola upload gambar beserta versi thumbnail-nya. Contoh nyata pemakaian permission:
use Spatie\Permission\Traits\HasRoles;
class Post extends Model
{
use HasRoles;
}
// Beri role, lalu cek di controller atau middleware
$user->assignRole('editor');
if ($user->can('publish posts')) {
// tampilkan tombol publish
}
Ini menghemat waktu saya: tanpa paket ini saya harus bikin tabel role, permission, pivot, dan pivot manual sendiri — pekerjaan beberapa hari yang sebenarnya sudah diselesaikan dengan baik oleh paket yang sudah teruji ribuan proyek. Di episode 12 soal Gate & Policy, Spatie ini adalah pelengkap alami: Gate untuk keputusan per-aksi, Spatie untuk struktur role.
Debugbar: teman belajar, musuh di produksi
barryvdh/laravel-debugbar menampilkan timeline request, query SQL yang dijalankan, cookies, hingga log di bawah setiap halaman. Saat saya belajar, inilah yang paling membantu untuk memahami “kenapa halaman ini lambat” — saya bisa langsung melihat apakah ada puluhan query yang berulang (gejala masalah N+1 yang dibahas di episode 21). Tapi aturan yang saya catat keras-keras: debugbar hanya untuk lokal. Di produksi ia membocorkan struktur database ke siapa pun yang membuka halaman. Untungnya ia punya konfigurasi aman:
// config/debugbar.php — matikan di produksi lewat environment
'debugbar' => [
'enabled' => env('APP_DEBUG', false),
],
Karena APP_DEBUG=false di server produksi, debugbar ikut mati otomatis. Saya juga memasangnya sebagai dependency --dev supaya tidak ikut ter-install di lingkungan produksi sama sekali.
Prinsip pemilihan paket yang saya pegang
- Pasang hanya yang benar-benar dipakai — setiap paket adalah beban dependensi.
- Cek riwayat maintenance: update dalam 6 bulan terakhir, dokumentasi resmi, jumlah issue terbuka yang direspons.
- Paket besar (Breeze/Jetstream/Spatie) aman karena banyak dipakai; paket kecil perlu telisik lebih dulu.
- Semua paket dipasang lewat Composer, bukan menyalin kode — supaya mudah di-update.
Ringkasan catatan ini: jangan menulis ulang roda yang sudah berputar baik. Breeze/Jetstream untuk autentikasi, Spatie untuk permission dan file, Debugbar untuk memahami apa yang terjadi di balik layar — dan semuanya dengan pertimbangan kapan harus dipasang serta kapan harus dilepas.
Komentar Terbaru