亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我怎樣才能讓 phpstan 找到我的自定義擴展類?

我怎樣才能讓 phpstan 找到我的自定義擴展類?

PHP
aluckdog 2023-11-03 20:23:03
為了實現對某些魔術_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個贊

擴展類需要在運行時加載。您可以通過兩種方式實現這一目標:

  1. 使該類可用于 Composer 自動加載器。通常配置autoload-devcomposer.json 的部分就足夠了。

  2. 創建一個名為類似名稱的文件phpstan-autoload.php,其中包含require_once具有擴展類的文件。并在運行 PHPStan 時將文件路徑?phpstan-autoload.php作為--autoload-file|-a命令行上的選項傳遞。


查看完整回答
反對 回復 2023-11-03
  • 1 回答
  • 0 關注
  • 148 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號