我目前正在開發一個框架,但我無法弄清楚我將如何設置自動加載。首先,我創建了一個包含樣本類和composer.json的包。我已經被自動加載該樣品等級:作曲家不自動加載包
"autoload": {
"classmap": [
"libs/"
]
}
我檢查/vendor/mypackage/vendor/composer/autoload_classmap.php並確認包的自動加載機工作正常。但問題是,除非我直接包含該包的autoload.php,否則我無法從主應用程序訪問該包的類。
UPDATE
/vendor/foo/mypackage/composer.json
"autoload": {
"psr-4": {
"Http\\": "libs/"
}
}
/vendor/foo/mypackage/libs/Request.php
namespace Http;
class Request {}
我爲我的mvc框架使用psr-4,但它不適用於我的作曲家包。另外,我還包括/vendor/autoload.php,但不能使用MyPackage \ SampleClass,而不包括/vendor/mypackage/vendor/autoload.php。 /vendor/autoload.php是否應該包含自動加載程序包?我是否要逐個包含所有軟件包自動加載器? –
爲什麼'mypackage'目錄中有'vendor'目錄?如果你需要Composer的包,所有的依賴將被安裝在根目錄'vendor /'目錄下,所有的自動加載都將被設置在根目錄'vendor/autoload.php'中。 –
有一個供應商文件夾,因爲我用來在/ vendor/mypackage中運行dump-autoload命令,但後來我明白這不是必需的。我已經更新了我的問題。我像這樣調用我的類:'new \ Http \ Request()'。我在代碼中看不到任何錯誤。 –