Pada hari Valentine kemarin, tepatnya 14 Februari 2023 komunitas PHP sedang berbahagia. Laravel, sebuah framework buatan Taylor Otwell merilis sebuah versi major, yakni versi 10. Salah satu fitur yang saya nantikan ialah Native Type Declarations.
Table of contents
Open Table of contents
Native Type Declarations
Saya sadur dari Laravel News, fitur yang satu ini membuat kita mendapatkan type-hinting pada kode-kode yang ada di aplikasi.
Meskipun demikian, untuk memaksimalkannya kita perlu melakukan beberapa langkah, agar ke depan kode-kode yang kita buat tetap inline dengan inisiasi awal, type hinting all day long!
Larastan
Pasang pada proyek dengan command:
composer require nunomaduro/larastan:^2.0 --dev
Buat berkas phpstan.neon
atau phpstan.neon.dist
di root proyek:
includes:
- ./vendor/nunomaduro/larastan/extension.neon
parameters:
paths:
- app/
# Level 9 is the highest level
level: 9
Untuk membuktikannya, kita bisa mencobanya dengan command:
./vendor/bin/phpstan analyse
Lebih lanjut, apabila ingin kustomisasi berkas config diatas baca repositori Larastan.
Laravel Pint
Laravel Pint ini bertugas sebagai code style fixer, agar kode-kode yang kita (anggota tim development) tulis sesuai dengan standart yang sudah ditentukan, following the opinionated coding style of Laravel.
composer require laravel/pint --dev
Yep, cukup dengan instalasi diatas. Kita bisa mengecek code style kita dengan command:
./vendor/bin/pint
Pun demikian, kalian bisa kustomisasi style code sesuai dengan yang kalian kehendaki. Further more, baca dokumentasi Laravel Pint.
GrumPHP
Untuk menjaga agar kedua aturan diatas tetep berjalan dan diterapkan, kita perlu membuat sebuah source code defender!
composer require --dev phpro/grumphp
Kita buat script di berkas composer.json
:
{
...
"scripts": {
...
"lint": [
"./vendor/bin/pint --test"
]
},
...
}
Buat berkas grumphp.yml
:
grumphp:
tasks:
composer_script:
script: lint
triggered_by: [php]
phpstan:
use_grumphp_paths: false
Lakukan percobaan, harusnya ketika pertama coba tidak ada error, dengan catatan masih fresh instalasi Laravel 10, belum ada kustomisasi proyek.
php ./vendor/bin/grumphp run
Setelah tidak ada error, kita perlu mendaftarkan command tersebut agar setiap kali kita menulis commit message mendapatkan feedback terlebih dahulu apakah kode yang kita tulis telah sesuai dengan standart atau belum. Kalau belum sesuai, commit tersebut akan batal dan kita perlu memperbaikinya.
php ./vendor/bin/grumphp git:init
Sementara cukup sekian dulu, kalau rame lanjut part 2! Cheers 😎