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

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