Pint — gaya kode
Perdebatan soal spasi dan urutan import adalah waktu yang hilang. Pint menyelesaikannya dengan satu keputusan: gaya kodenya ditentukan alat, bukan orang.
Intisari
- Sudah termasuk di proyek Laravel baru — tidak perlu dipasang.
./vendor/bin/pintmemperbaiki;--testhanya memeriksa (untuk CI).- Preset default mengikuti gaya resmi Laravel.
--dirtyhanya memformat berkas yang berubah menurut git.- Jalankan di CI dengan
--testsupaya 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"]
}
| Preset | Gaya |
|---|---|
laravel | Default — gaya resmi framework |
psr12 | Standar PSR-12 murni |
symfony | Gaya Symfony |
empty | Tanpa 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.