← Semua pembelajaran / Laravel Nol → Enterprise
Fase 6 · Testing & Kualitas Kode

Pint — gaya kode

Perdebatan soal spasi dan urutan import adalah waktu yang hilang. Pint menyelesaikannya dengan satu keputusan: gaya kodenya ditentukan alat, bukan orang.

Sumber asli laravel.com Resmi Rangkuman ~3 menit baca

Intisari

  • Sudah termasuk di proyek Laravel baru — tidak perlu dipasang.
  • ./vendor/bin/pint memperbaiki; --test hanya memeriksa (untuk CI).
  • Preset default mengikuti gaya resmi Laravel.
  • --dirty hanya memformat berkas yang berubah menurut git.
  • Jalankan di CI dengan --test supaya gaya tidak pernah menyimpang.

Memakainya

./vendor/bin/pint              # perbaiki semuanya
./vendor/bin/pint --test       # hanya periksa, keluar dengan kode ≠ 0 kalau ada yang salah
./vendor/bin/pint --dirty      # hanya berkas yang berubah
./vendor/bin/pint -v           # tampilkan aturan apa saja yang diterapkan
./vendor/bin/pint app/Models   # batasi ke satu folder

Konfigurasi

// pint.json
{
    "preset": "laravel",
    "rules": {
        "declare_strict_types": true,
        "ordered_imports": { "sort_algorithm": "alpha" },
        "no_unused_imports": true,
        "not_operator_with_successor_space": true
    },
    "exclude": ["database/migrations"]
}
PresetGaya
laravelDefault — gaya resmi framework
psr12Standar PSR-12 murni
symfonyGaya Symfony
emptyTanpa aturan; kamu tentukan semuanya

"declare_strict_types": true layak dinyalakan sejak awal. Ia menambahkan declare(strict_types=1) ke setiap berkas secara otomatis. Menyalakannya di proyek yang sudah besar akan memunculkan banyak error tipe sekaligus — jauh lebih murah dilakukan pada hari pertama.

Di dalam pipeline

# .github/workflows/ci.yml
- name: Periksa gaya kode
  run: ./vendor/bin/pint --test

Dengan --test, pipeline gagal kalau ada berkas yang belum diformat — tanpa mengubah apa pun. Perbaikannya satu perintah di laptop pengembang, dan tidak pernah lagi ada komentar review tentang spasi.

Sebelum commit

// composer.json
"scripts": {
    "rapikan": ["./vendor/bin/pint --dirty"],
    "periksa": [
        "./vendor/bin/pint --test",
        "./vendor/bin/phpstan analyse",
        "php artisan test --parallel"
    ]
}
composer rapikan
composer periksa      # persis yang dijalankan CI — jalankan sebelum push

Satu perintah yang sama persis dengan CI itu penting. Kalau pengembang harus mengingat tiga perintah berbeda, salah satunya pasti terlewat, dan pipeline jadi tempat menemukan hal yang seharusnya ketahuan di laptop. Satu composer periksa menghapus seluruh kelas kegagalan itu.

Latihan: buat pint.json dengan declare_strict_types aktif, jalankan ./vendor/bin/pint, dan lihat git diff-nya. Lalu tambahkan skrip composer periksa dan pastikan ia hijau.

Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.