為了實現對某些魔術_get()函數的檢查,我正在嘗試實現“類反射擴展”。該手冊提到了如何編寫擴展文件本身,以及如何通過service向 neon 文件添加一部分來安裝它們。我寫了一個擴展,并像這樣添加它:services:
- class: TestClass
tags:
- phpstan.broker.methodsClassReflectionExtension這會導致以下錯誤:服務“0226”:未找到類 TestClass。我嘗試過的事情:使用獨立的 phar使用 phpstan 的 Composer 安裝使用特定的命名空間 (PHPStan) 作為擴展(在文件和 neon 中)使用“隨機”命名空間(在文件和霓虹燈中)將文件添加到我知道正在掃描以進行分析的目錄將帶有擴展名的目錄添加到“scanDirectories”參數中將文件添加到“scanFiles”參數將擴展名添加到“paths”參數中的目錄添加(已棄用的)自動加載指令并在其中添加文件。如果找不到文件,這些“添加”嘗試中的一些實際上會發出警告:例如,如果我故意在其中之一中犯了一個拼寫錯誤,比如說自動加載錯誤,它會警告我丟失文件。但前提是我沒有定義service。如果我定義了服務并在那里故意輸入錯誤,它會返回上面的類未找到(而不是輸入錯誤),所以我覺得它在任何參數之前檢查擴展?似乎需要將我的文件添加到不同的自動加載機制中。問題是,哪個以及如何?我在用著phpstan 0.12.40php 7.2.33
1 回答

郎朗坤
TA貢獻1921條經驗 獲得超9個贊
擴展類需要在運行時加載。您可以通過兩種方式實現這一目標:
使該類可用于 Composer 自動加載器。通常配置
autoload-dev
composer.json 的部分就足夠了。創建一個名為類似名稱的文件
phpstan-autoload.php
,其中包含require_once
具有擴展類的文件。并在運行 PHPStan 時將文件路徑?phpstan-autoload.php
作為--autoload-file|-a
命令行上的選項傳遞。
- 1 回答
- 0 關注
- 148 瀏覽
添加回答
舉報
0/150
提交
取消