我正在學習如何更好地維護我編寫的代碼。我有兩個目前正在開發的項目 - 都在開發中,並且都被推送到GitHub。作曲家自動加載後部署不工作
我想包括一個項目在另一個(通過聲明它依賴於一個項目的composer.json文件) - 但它被包括後,它缺少正確的自動加載配置。
我會解釋更好一點:項目A的composer.json文件中是否有「PSR-4」的命名空間映射到「src」目錄的自動加載線 - 在我運行所有好和工作:
composer install
然後,我可以包含/vendor/autoload.php文件,並立即開始使用該項目。當我查看該項目供應商目錄中生成的「autoload_psr4.php」文件時,我可以看到該數組包含每個composer.json文件的映射命名空間/目錄的引用。
當我嘗試在項目B中包含項目A作爲依賴項時,問題就出現了 - 在運行作曲家安裝後,所有東西都看起來工作 - 供應商目錄被創建並且文件被複制到那裏 - 但是當我查看生成的項目B中的「autoload_psr4.php」文件缺少每個項目A的composer.json文件的映射命名空間/目錄。
有人能指點我的方向嗎?我可能錯過了將自動加載行轉移到項目B的方向?
這裏有兩個composer.json文件:
項目A:
{
"name": "jfreynik/hydra-net",
"description": "Network classes for the Hydra framework.",
"type": "library",
"keywords": [ "http", "net", "rest" ],
"license": "MIT",
"require": {
"php": ">=5.3.0"
},
"autoload": {
"psr-4": {
"hydra\\net\\": "src/"
}
}
}
項目B:
{
"name": "jfreynik/simple-mvc",
"description": "A pretty simple MVC framework for building websites.",
"type": "framework",
"keywords": [ "MVC", "Website Framework" ],
"license": "MIT",
"repositories": [
{
"type":"package",
"package": {
"name": "jfreynik/hydra-net",
"version":"*-dev",
"source": {
"url": "https://github.com/jfreynik/hydra-net.git",
"type": "git",
"reference":"master"
}
}
}
],
"require": {
"jfreynik/hydra-net": "*-dev"
},
"minumum-stability": "dev"
}
謝謝!