PHP Artisan adalah command line bawaan Laravel. Lewat perintah php artisan, kamu bisa menjalankan server lokal, membuat file controller dan model, menjalankan migration database, membersihkan cache, sampai menyalakan mode maintenance, tanpa menulis kode itu satu per satu. Artikel ini menjelaskan cara kerja Artisan dan perintah yang paling sering dipakai di Laravel 12, lengkap dengan contoh. Semua perintah sudah kami jalankan di project Laravel 12.70.
Kalau yang kamu cari adalah cara membuat perintah Artisan sendiri, bacaannya ada di membuat custom Artisan command di Laravel 12. Artikel ini fokus pada perintah bawaan.
Apa Itu PHP Artisan dan Cara Menjalankannya
Artisan sebenarnya adalah file PHP bernama artisan di root project Laravel. Perintah php artisan berarti “jalankan file artisan dengan PHP”. Karena itu, perintahnya harus dijalankan dari folder project, yaitu folder yang berisi file artisan, composer.json, dan .env.
cd toko-online
php artisan list
php artisan list (atau cukup php artisan) menampilkan semua perintah yang tersedia. Di project Laravel 12 yang baru, jumlahnya lebih dari seratus. Perintah dikelompokkan dengan awalan, misalnya make: untuk membuat file, migrate: untuk database, dan route: untuk routing.
Lupa opsi sebuah perintah? Tambahkan --help:
php artisan make:model --help
php artisan list make
Perintah kedua hanya menampilkan perintah dengan awalan make:. Paket yang kamu pasang (misalnya Livewire atau Sanctum) juga bisa menambah perintah baru ke daftar ini.
Perintah PHP Artisan yang Paling Sering Dipakai
| Perintah | Fungsi |
|---|---|
| Menjalankan aplikasi | |
php artisan serve |
Menjalankan server lokal di http://127.0.0.1:8000 |
php artisan tinker |
Konsol interaktif untuk mencoba kode dan query Eloquent |
php artisan about |
Ringkasan versi Laravel, PHP, environment, cache, dan driver |
| Membuat file (generator) | |
php artisan make:controller |
Membuat controller |
php artisan make:model |
Membuat model Eloquent, bisa sekaligus migration, factory, seeder, dan controller |
php artisan make:migration |
Membuat file migration |
php artisan make:seeder / make:factory |
Membuat seeder dan factory data |
php artisan make:request |
Membuat Form Request untuk validasi |
php artisan make:middleware |
Membuat middleware |
| Database | |
php artisan migrate |
Menjalankan migration yang belum dijalankan |
php artisan migrate:fresh --seed |
Menghapus semua tabel, migrate ulang, lalu mengisi data contoh |
php artisan db:seed |
Menjalankan seeder |
| Routing dan cache | |
php artisan route:list |
Menampilkan semua route |
php artisan optimize |
Men-cache config, route, event, dan view untuk production |
php artisan optimize:clear |
Menghapus semua cache tersebut |
php artisan config:clear / cache:clear / view:clear |
Menghapus cache tertentu saja |
| Lain-lain | |
php artisan key:generate |
Mengisi APP_KEY di .env |
php artisan storage:link |
Membuat symlink public/storage agar file upload bisa diakses publik |
php artisan queue:work |
Memproses job di antrian |
php artisan schedule:work |
Menjalankan scheduler di lokal |
php artisan down / up |
Menyalakan dan mematikan mode maintenance |
php artisan install:api |
Membuat routes/api.php dan memasang Sanctum |
php artisan test |
Menjalankan test |
php artisan serve: Menjalankan Server Lokal
php artisan serve
# ganti port
php artisan serve --port=8080
# bisa diakses dari HP di jaringan yang sama
php artisan serve --host=0.0.0.0 --port=8000
Kalau port 8000 sedang dipakai, serve otomatis mencoba port berikutnya (8001, 8002, dan seterusnya, sampai 10 kali). Perhatikan alamat yang tercetak di terminal. Di Laravel 12 ada juga composer run dev, yang menjalankan serve, queue worker, log, dan Vite sekaligus. Penjelasannya ada di panduan cara install Laravel 12.
php artisan serve hanya untuk development. Di server production, gunakan web server seperti Nginx atau Apache dengan PHP-FPM.
Perintah make: untuk Membuat File
Perintah make: membuat file dari template (stub) di lokasi yang benar, lengkap dengan namespace. Yang paling hemat waktu adalah make:model dengan opsi gabungan:
# model + migration + factory + seeder
php artisan make:model Category -mfs
# model + migration + resource controller
php artisan make:model Product -mcr
# semua: migration, seeder, factory, policy, resource controller, form request
php artisan make:model Order --all
| Opsi | Yang ikut dibuat |
|---|---|
-m |
Migration |
-f |
Factory |
-s |
Seeder |
-c |
Controller |
-r |
Controller dijadikan resource controller |
--api |
Controller dijadikan API resource controller |
-R |
Form request untuk store dan update |
--policy |
Policy |
-a / --all |
Semua di atas (migration, seeder, factory, policy, resource controller, form request) |
Detail tiap jenis controller ada di panduan membuat controller di Laravel 12, dan isi file migration dibahas di cara membuat migration Laravel.
Laravel 12 juga punya generator untuk class PHP biasa: make:class, make:enum, make:interface, dan make:trait.
php artisan tinker: Mencoba Kode Langsung
Tinker adalah konsol interaktif yang sudah memuat seluruh aplikasi. Berguna untuk mengecek data atau mencoba query tanpa membuat route:
php artisan tinker
> App\Models\User::count();
> App\Models\Category::where('is_active', true)->pluck('name');
> exit
Untuk menjalankan satu baris tanpa masuk ke konsol, pakai --execute:
php artisan tinker --execute="echo App\Models\Category::count();"
Tinker bekerja pada database sungguhan. Hati-hati menjalankan delete() atau update() di server production.
Perintah Cache dan Optimasi
# production, setelah deploy
php artisan optimize
# saat .env atau route diubah tetapi perubahan tidak terbaca
php artisan optimize:clear
Setelah config:cache (bagian dari optimize), Laravel tidak lagi membaca file .env secara langsung. Perubahan .env baru terbaca setelah cache dihapus atau dibuat ulang. Ini penyebab paling umum keluhan “sudah ganti password database di .env tapi masih error”.
Mode Maintenance
php artisan down
php artisan up
Selama mode maintenance aktif, semua pengunjung mendapat halaman 503. Untuk tetap bisa mengakses aplikasi sambil maintenance, pakai php artisan down --secret="kode-rahasia", lalu buka https://domainkamu.com/kode-rahasia sekali di browser.
Menjalankan Artisan dari Kode
Perintah Artisan juga bisa dipanggil dari kode PHP, misalnya dari controller atau job, lewat facade Artisan:
use Illuminate\Support\Facades\Artisan;
$exitCode = Artisan::call('migrate', ['--force' => true]);
$output = Artisan::output();
Nilai 0 berarti perintah berhasil. Opsi --force diperlukan karena perintah migrate meminta konfirmasi saat environment-nya production.
Error Artisan yang Sering Muncul
Could not open input file: artisan. Terminal tidak sedang berada di folder project. Masuk dulu dengancd nama-project.Command "xxx" is not defined. Salah ketik, atau perintah itu milik paket yang belum dipasang. Cek denganphp artisan list.- Error versi PHP atau
vendor/autoload.phptidak ditemukan. Dependency belum dipasang. Jalankancomposer installterlebih dahulu, dan pastikanphp -vsesuai kebutuhan Laravel 12 (PHP 8.2 ke atas). db:showataudb:tablegagal dengan pesan ekstensiintl. Perintah ini memformat angka dan butuh ekstensi PHPintl. Aktifkan ekstensinya, atau pakaimigrate:statusuntuk sekadar mengecek migration.
Pertanyaan yang Sering Diajukan
Apa itu php artisan serve?
Perintah untuk menjalankan server pengembangan bawaan PHP pada project Laravel, secara bawaan di http://127.0.0.1:8000. Hanya untuk lokal, bukan untuk production.
Apa beda Artisan dan Composer?
Composer adalah package manager PHP: memasang dan memperbarui library. Artisan adalah command line milik Laravel untuk mengelola project yang sudah ada. Composer membuat project Laravel, Artisan dipakai setelahnya.
Apakah Laravel gratis?
Ya. Laravel adalah framework open source berlisensi MIT, termasuk Artisan. Biaya baru muncul untuk layanan pihak ketiga seperti hosting atau layanan berbayar di ekosistem Laravel.
Bagaimana cara membuat perintah Artisan sendiri?
Dengan php artisan make:command NamaCommand. Langkah lengkap, termasuk argumen, opsi, dan penjadwalan, ada di artikel custom Artisan command.
Lanjut belajar: atur URL aplikasi lewat routing Laravel, atau lihat urutan materi lengkap di halaman tutorial Laravel.
Butuh aplikasi berbasis Laravel untuk bisnis, tetapi tim internal belum punya waktu? Tim Arrazy Inovasi di Purwokerto mengerjakan pembuatan sistem aplikasi custom dari perancangan sampai server production.
Leave a Reply