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:

bash
php artisan list

Output yang Dihasilkan:

text
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 application

Output 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:

PerintahFungsi
make:controllerMembuat kelas controller baru di app/Http/Controllers
make:modelMembuat kelas model Eloquent baru, opsi -m sekalian migrasinya
make:migrationMembuat berkas migrasi schema database
migrateMenjalankan migrasi yang belum dieksekusi
route:listMenampilkan seluruh route terdaftar beserta URI dan namanya
db:showMenampilkan ringkasan koneksi dan tabel database
tinkerMembuka REPL untuk mengeksekusi kode langsung terhadap aplikasi
testMenjalankan 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:

bash
php artisan help migrate

Output yang Dihasilkan:

text
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 occurs

Dari 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
<?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:

php
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:

bash
php artisan sapa Budi

Output yang Dihasilkan:

text
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:

bash
php artisan tinker --execute="echo config('app.name');"

Output yang Dihasilkan:

text
Laravel

Tinker 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.