我有點困惑,因為我正在使用 Composer 為 WordPress 編寫一個插件,因為這是真正的方法。所以我在我的插件和其他一些東西中創建了一個作曲家文件。在作曲家文件中,我添加了用于自動加載的命名空間:"autoload": { "psr-4": { "Johnny\\Lolkick\\": [ "includes/classes/" ] }}在我的類文件夾中,我現在創建了一個名為 的類class-main.php。由于 WordPress 命名約定,我決定采用此名稱:https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/#naming-conventions該類本身被命名為class Main {. 在我的基本插件文件中,我現在創建了一個失敗的類的新實例。更改文件名后就Main.php可以了。因此,WordPress 的命名約定破壞了 Composer 的自動加載。我現在想知道你如何處理這個問題?我應該如何使用 Composer 來保持命名約定?
1 回答

尚方寶劍之說
TA貢獻1788條經驗 獲得超4個贊
由于您的代碼庫與PSR-4 自動加載不兼容,因此您注意到,composer.json 的自動加載部分中的psr-4映射將不起作用。
我想說你在這里有兩個選擇:
第一個是使用classmap
:
{
? ? "autoload": {
? ? ? ? "classmap": ["includes/classes/"]
? ? }
}
這將簡單地遞歸解析該文件夾中的所有文件并將類映射到它們的名稱,無論您遵循什么命名方案。
第二個是構建您自己的自動加載器,并使用files
它自動加載:
{?? ??"autoload":?{? ???????"files":?["includes/autoloader.php"] ????} }
該自動加載器必須定義在引用給定的類名時應該發生什么(應該加載哪個類,或者不加載哪個類)。
在這兩種情況下,不要忘記composer dump-autoload
事后跑步。
- 1 回答
- 0 關注
- 116 瀏覽
添加回答
舉報
0/150
提交
取消