LaravelArtisanCLIPemula4 mnt baca

Artisan: Perintah Wajib Hafal

Kuasai perintah artisan yang dipakai setiap hari: serve, make, migrate, tinker.

Analogi: Asisten Pribadi yang Hafal Semua Prosedur

Bayangkan kamu punya asisten pribadi yang hafal semua prosedur kantor. Kamu bilang "buatkan saya dokumen kontrak baru", ia langsung tahu formatnya, di folder mana menyimpannya, dan nomor suratnya. Kamu tidak perlu menjelaskan dari nol setiap kali.

Artisan adalah asisten itu untuk project Laravel-mu. Ia tahu konvensi penamaan file, namespace yang benar, dan struktur class yang standar. Daripada membuat file controller manual lalu salah namespace, satu perintah Artisan menghasilkan file yang langsung benar.

Kenapa Artisan Ada? Masalah Apa yang Diselesaikan?

Sebelum Artisan, membuat file baru berarti: bikin file kosong, tulis namespace manual, tulis use statement satu per satu, dan berharap tidak typo. Typo kecil di namespace menyebabkan error "class not found" yang membingungkan pemula selama berjam-jam.

Artisan menyelesaikan masalah scaffolding: membuat file baru selalu mengikuti konvensi, sehingga error typo namespace praktis hilang. Plus, ia memberi akses cepat ke tugas operasional (migrasi database, cek route, eksperimen query) tanpa membuka browser atau menulis skrip sekali pakai.

Contoh 1: Perintah yang Dipakai Setiap Hari

bash
# Lihat semua perintah yang tersedia (ada puluhan)
php artisan list

# Jalankan dev server
php artisan serve

# Buat controller kosong bernama PostController
php artisan make:controller PostController

# Buat model Post SEKALIGUS file migration-nya (flag -m)
php artisan make:model Post -m

# Jalankan migration (buat/ubah tabel di database)
php artisan migrate

# Lihat semua route yang terdaftar, sangat berguna untuk debugging
php artisan route:list

Hasil make:controller langsung benar, tanpa kamu menulis namespace:

php
// app/Http/Controllers/PostController.php (dihasilkan otomatis)
namespace App\Http\Controllers;

class PostController extends Controller
{
    //
}

Contoh 2: Tinker, Laboratorium Mini Paling Seru

Tinker adalah console interaktif (REPL): kamu bisa menjalankan kode PHP apapun dalam konteks aplikasimu, termasuk query database, tanpa membuka browser.

bash
php artisan tinker
php
// Di dalam tinker, coba query langsung:
>>> App\Models\User::count();
=> 3

>>> $user = App\Models\User::first();
>>> $user->name;
=> "Budi Santoso"

>>> App\Models\Post::latest()->take(2)->pluck('title');
=> Illuminate\Support\Collection {#...}
     all: [
       "Belajar Laravel itu Seru",
       "Routing untuk Pemula",
     ]

Ini luar biasa untuk belajar Eloquent: kamu bisa bereksperimen dengan query dan langsung melihat hasilnya, tanpa membuat route, controller, dan view dulu. Salah query? Tidak masalah, tidak ada yang rusak, coba lagi.

Catatan teknis: Jangan jalankan tinker di server production kecuali kamu paham risikonya: ia bisa mengubah atau menghapus data live. Untuk perintah destruktif seperti migrate:fresh (hapus semua tabel lalu buat ulang), Artisan selalu meminta konfirmasi saat dijalankan di production. Itu pengaman yang disengaja, jangan di-bypass.

Kesalahan Umum Pemula

Salah: membuat file controller/model manual pakai editor, lalu salah namespace.

php
// SALAH: file dibuat manual di app/Http/Controllers/PostController.php
// tapi lupa namespace atau salah tulis:
namespace App\Http\Controller;   // kurang 's'! harusnya Controllers
// Hasil: error "Class not found" yang membingungkan
php
// BENAR: selalu pakai artisan untuk scaffolding
// php artisan make:controller PostController
// namespace, extends, dan lokasi file selalu benar otomatis

Salah: menjalankan migrate:fresh tanpa sadar itu menghapus SEMUA data.

bash
# SALAH: panik saat migration error, lalu asal jalankan:
php artisan migrate:fresh
# Semua tabel di-drop dan dibuat ulang. Datamu hilang. Di local masih oke,
# di production ini bencana.
bash
# BENAR: pahami dulu bedanya
php artisan migrate           # aman: hanya menjalankan migration yang belum jalan
php artisan migrate:fresh     # DESTRUKTIF: drop semua tabel, buat ulang dari nol
# Pakai migrate:fresh hanya di local saat memang ingin reset database development.

Rangkuman

Artisan adalah asisten scaffolding dan operasionalmu: make: untuk membuat file yang selalu benar, migrate untuk database, route:list untuk debugging route, dan tinker sebagai laboratorium query. Kebiasaan baik: setiap kali mau bikin file baru, tanya dulu "apakah ada perintah make: untuk ini?" Di modul berikutnya, kita bahas brankas rahasia project: file .env.

Tantangan

Tinker Challenge

Buka php artisan tinker. Hitung jumlah user dengan User::count(), lalu tampilkan nama user pertama. Catat outputnya.