Sejak chapter pertama Section ini, kita terus menjalankan perintah yang diawali php artisan — mulai dari serve hingga db:show — tanpa membedah alatnya. Artisan adalah command line interface bawaan Laravel, dan hampir semua pekerjaan di proyek Laravel melintasinya: membuat controller, menjalankan migrasi, menguji aplikasi, sampai membersihkan cache. Pada chapter ini kita akan memetakan perintah-perintah yang paling sering dipakai, membaca layar bantuannya, dan membuat perintah kustom pertama kita.
Pusat Kendali di Berkas artisan #
Artisan hadir sebagai skrip PHP bernama artisan di direktori akar proyek; perintah php artisan <nama> pada dasarnya mengeksekusi skrip itu. Untuk melihat seluruh perintah yang tersedia, jalankan list:
php artisan listOutput yang Dihasilkan:
Laravel Framework 13.36.0
Usage:
command [options] [arguments]
Available commands:
about Display basic information about your application
clear-compiled Remove the compiled class file
db Start a new database CLI session
dev Run the dev processes
docs Access the Laravel documentation
down Put the application into maintenance / demo mode
env Display the current framework environment
inspire Display an inspiring quote
list List commands
migrate Run the database migrations
optimize Cache framework bootstrap, configuration, and metadata to increase performance
pail Tails the application logs
serve Serve the application on the PHP development server
test Run the application tests
tinker Interact with your applicationOutput di atas dipangkas setelah entri tinker; daftar lengkapnya berlanjut dengan perintah ber-namespace seperti cache:clear, make:controller, hingga queue:work. Pola penamaannya konsisten: make: untuk membuat berkas, db: untuk operasi database, route: untuk routing, dan queue: untuk pekerjaan tertunda.
Perintah yang Sering Dipakai #
Sepanjang Course ini, sebagian besar waktu kita dihabiskan bersama perintah berikut:
| Perintah | Fungsi |
|---|---|
make:controller | Membuat kelas controller baru di app/Http/Controllers |
make:model | Membuat kelas model Eloquent baru, opsi -m sekalian migrasinya |
make:migration | Membuat berkas migrasi schema database |
migrate | Menjalankan migrasi yang belum dieksekusi |
route:list | Menampilkan seluruh route terdaftar beserta URI dan namanya |
db:show | Menampilkan ringkasan koneksi dan tabel database |
tinker | Membuka REPL untuk mengeksekusi kode langsung terhadap aplikasi |
test | Menjalankan seluruh test suite aplikasi |
Tidak ada tuntutan menghafal tabel di atas — daftar lengkap selalu tersedia di php artisan list, dan terminal modern dengan fitur history membuat perintah yang sering dipakai tinggal dipanggil ulang dengan tombol panah atas.
Menjelajahi Opsi Perintah #
Setiap perintah menerima argumen dan opsi yang bisa kita periksa lewat layar bantuan. Awali nama perintah dengan help, atau tempelkan flag --help di belakangnya:
php artisan help migrateOutput yang Dihasilkan:
Description:
Run the database migrations
Usage:
migrate [options]
Options:
--database[=DATABASE] The database connection to use
--force Force the operation to run when in production
--path[=PATH] The path(s) to the migrations files to be executed (multiple values allowed)
--pretend Dump the SQL queries that would be run
--seed Indicates if the seed task should be re-run
--step Force the migrations to be run so they can be rolled back individually
--graceful Return a successful exit code even if an error occursDari layar bantuan tersebut kita misalnya mengetahui bahwa php artisan migrate --pretend hanya menampilkan SQL yang akan dijalankan tanpa benar-benar mengeksekusinya — trik aman untuk meninjau perubahan schema sebelum diterapkan.
Perintah Kustom di routes/console.php #
Artisan bukan sekadar konsumen; kita bisa menambahkan perintah sendiri. Aplikasi segar sudah menyertakan contohnya di routes/console.php:
<?php
use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
Artisan::command('inspire', function () {
$this->comment(Inspiring::quote());
})->purpose('Display an inspiring quote');Sesuai dokumentasi Artisan
, method Artisan::command() menerima signature perintah dan sebuah closure yang isinya menjadi tubuh perintah. Kita coba menambahkan perintah sendiri ke berkas yang sama, tepat setelah perintah inspire:
use App\Models\User;
Artisan::command('sapa {nama}', function (string $nama) {
$jumlah = User::count();
$this->info("Halo {$nama}, saat ini ada {$jumlah} pengguna terdaftar.");
})->purpose('Menyapa pengguna beserta jumlah pengguna terdaftar');Signature sapa {nama} mendeklarasikan argumen wajib bernama nama yang otomatis diteruskan ke parameter closure, dan query Eloquent di dalamnya berjalan seperti di kode aplikasi biasa. Chain ->purpose() menyimpan deskripsi yang tampil di php artisan list, sehingga rekan tim kita bisa memahami fungsi perintah tanpa membuka kodenya. Untuk perintah yang tubuhnya lebih dari beberapa puluh baris, Laravel menyediakan make:command yang menghasilkan kelas tersendiri di app/Console/Commands — kita akan memakainya di Section Task Scheduling. Berikut hasil eksekusinya di aplikasi uji:
php artisan sapa BudiOutput yang Dihasilkan:
Halo Budi, saat ini ada 0 pengguna terdaftar.Perintah kustom berguna untuk pekerjaan berulang: mengirim laporan mingguan, membersihkan data sementara, atau memanggil logika internal dari scheduler.
Bereksperimen dengan Tinker #
Perintah terakhir yang wajib kita kenal adalah tinker, sebuah REPL yang memuat aplikasi penuh sehingga kita bisa mengeksekusi kode PHP dan langsung melihat hasilnya. Untuk skrip singkat yang tidak interaktif, tinker menyediakan opsi --execute:
php artisan tinker --execute="echo config('app.name');"Output yang Dihasilkan:
LaravelTinker adalah tempat terbaik menguji satu baris Eloquent atau helper tanpa membuat berkas sementara — kita akan sering memakainya saat belajar model dan collection di Section Eloquent.
Semua perintah yang kita jalankan tadi pada akhirnya membuat berkas di lokasi-lokasi tertentu di dalam proyek. Agar tidak tersesat, chapter terakhir Section ini memetakan struktur direktori Laravel secara menyeluruh.