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

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

如何通過保持 WordPress 命名約定來處理 Composer 自動加載?

如何通過保持 WordPress 命名約定來處理 Composer 自動加載?

PHP
胡說叔叔 2023-10-01 17:00:39
我有點困惑,因為我正在使用 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事后跑步。


查看完整回答
反對 回復 2023-10-01
  • 1 回答
  • 0 關注
  • 116 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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