Larastan 由 Can Vural 和 Nuno Maduro 創建,由 @Caneco 設計藝術品,由 Can Vural 和 Viktor Szépe 維護,是 Laravel 的 PHPStan 擴展。 Larastan 專注於尋找程式碼中的錯誤。甚至在您為程式碼編寫測試之前,它就可以捕獲所有類別的錯誤。
根據定義,「靜態分析」不會載入任何應用程式程式碼。 Larastan 啟動應用程式的容器,因此它可以解析只能在執行時計算的類型。這就是為什麼我們使用術語“代碼分析”而不是“靜態分析”。
| Laravel 版本 | 拉拉斯坦版本 |
|---|---|
| < 9 | 1.x |
| > 9.0 && <11.15 | 2.x |
| 11.15+ | 3.0+ |
要求:
1 :首先,您可以使用 Composer 將 Larastan 作為開發依賴項安裝到您的 Laravel 專案中:
composer require --dev " larastan/larastan:^3.0 "使用 Larastan 分析 Laravel 套件?您可能需要安裝
orchestra/testbench。
2 :然後,在應用程式的根目錄中建立phpstan.neon或phpstan.neon.dist檔案。它可能看起來像這樣:
includes:
- vendor/larastan/larastan/extension.neon
- vendor/nesbot/carbon/extension.neon
parameters:
paths:
- app/
# Level 10 is the highest level
level: 5
# ignoreErrors:
# - '#PHPDoc tag @var#'
#
# excludePaths:
# - ./*/*/FileToBeExcluded.php
對於所有可用選項,請查看 PHPStan 文件: https://phpstan.org/config-reference
3 :最後,您可以使用 phpstan 控制台指令開始分析程式碼:
./vendor/bin/phpstan analyse如果您收到錯誤Allowed memory size exhausted ,則可以使用--memory-limit選項解決該問題:
./vendor/bin/phpstan analyse --memory-limit=2G可以使用 php 註解或設定檔來忽略特定錯誤:
// @phpstan-ignore-next-line
$ test -> badMethod ();
$ test -> badMethod (); // @phpstan-ignore-line當忽略 PHPStan 設定檔中的錯誤時,透過根據錯誤訊息編寫正規表示式來忽略它們:
parameters :
ignoreErrors :
- ' #Call to an undefined method .*badMethod()# '在較舊的程式碼庫中,可能很難花時間修復所有程式碼以通過高 PHPStan 層級。
為了解決這個問題,可以產生一個基線檔案。基線文件將創建一個包含所有當前錯誤的配置文件,因此可以按照比舊程式碼更高的標準編寫新程式碼。 (PHPStan 文檔)
./vendor/bin/phpstan analyse --generate-baseline可以在此處找到特定於 Laravel 的可設定規則清單。
可以在此處找到 Larastan 功能清單。
可以在此處找到特定於 Larastan 的 PHPDoc 類型清單。
您可以在此處找到可在 PHPStan 設定檔中使用的自訂設定參數清單。
Laravel 的某些部分目前對 Larastan/PHPStan 來說太神奇了,無法理解。我們列出了要忽略的常見錯誤,請根據需要添加它們
感謝您考慮為 Larastan 做出貢獻。這裡提到了所有貢獻指南。
Larastan 是一款根據 MIT 許可證授權的開源軟體。