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

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