Cara Mengimplementasikan Larastan Di Laravel Project
Larastan ialah package yang bisa membantu kami menemukan kesalahan dalam project kami.
Mari kita mulai:
Pertama instal dependensi:
composer require nunomaduro/larastan --dev
Saya menambah flag dev karena saya tidak mau menginstal di production environment. Cara setelah itu membuat file phpstan.neon di lajur root proyek:
includes:
- ./vendor/nunomaduro/larastan/extension.neon
parameters:
paths:
- app/
level: 2
checkMissingIterableValueType: false
Mari kita jalankan:
./vendor/bin/phpstan analyse
Note: Using configuration file /solid-laravel/phpstan.neon.
38/38 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Line Http/Resources/DepartmentResource.php
------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
12 PHPDoc tag @extends contains generic type Illuminate\Http\Resources\Json\JsonResource<App\Models\Department> but class Illuminate\Http\Resources\Json\JsonResource is not generic.
23 Access to an undefined property App\Http\Resources\DepartmentResource::$id.
24 Access to an undefined property App\Http\Resources\DepartmentResource::$name.
25 Access to an undefined property App\Http\Resources\DepartmentResource::$address.
------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------ --------------------------------------------------------------------------------------
Line Http/Resources/EmployeeResource.php
------ --------------------------------------------------------------------------------------
18 Access to an undefined property App\Http\Resources\EmployeeResource::$id.
19 Access to an undefined property App\Http\Resources\EmployeeResource::$first_name.
20 Access to an undefined property App\Http\Resources\EmployeeResource::$last_name.
21 Access to an undefined property App\Http\Resources\EmployeeResource::$department_id.
22 Access to an undefined property App\Http\Resources\EmployeeResource::$role.
23 Access to an undefined property App\Http\Resources\EmployeeResource::$usd_salary.
------ --------------------------------------------------------------------------------------
[ERROR] Found 10 errors
Oh, saya memiliki 10 kesalahan dalam kode saya di level 2. Mari kita perbaiki
/** @mixin Employee */
class EmployeeResource extends JsonResource
/** @mixin Department */
class DepartmentResource extends JsonResource
./vendor/bin/phpstan analyse
Note: Using configuration file /solid-laravel/phpstan.neon.
38/38 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
[OK] No errors
Oh, saya mempunyai 10 kesalahan dalam code saya di tingkat Anda bisa sesuaikan tingkat analitis dengan Laravel Stan, dimulai dari 1 (termudah) sampai 9 (paling susah). Untuk project yang lebih kecil, tingkat 8 dan 9 kemungkinan pas, dan untuk proyek yang semakin lebih besar, tingkat 3 sampai 5 direferensikan. Ingat-ingatlah jika tingkatkan tingkat analitis bisa menyebabkan semakin banyak kesalahan yang perlu diperbarui.
Untuk project kecil saya, saya pilih 9 tingkat. Saat saya menerapkan Larastan, saya harus juga membuat beberapa peralihan pada kode saya.
Saya anjurkan tambah ketentuan periksa di file CI Anda:2. Silahkan kita benahi
- name: Run PHPstan analyse
run: ./vendor/bin/phpstan analyse