我正在嘗試與作曲家合作,並將創建自己的包。我包項目具有以下文件結構:作曲家自動加載錯誤
scr/Scheduler.php
.gitignore
composer.json
測試類:
namespace david\Scheduler;
use Symfony\Component\Yaml\Parser;
class Scheduler
{
private $yamlParser;
public function __construct()
{
$this->yamlParser = new Parser();
}
}
和composer.json文件
...
"require": {
"symfony/yaml": "~3.0.3"
},
"autoload": {
"psr-4": {
"david\\Scheduler\\": "src/"
}
}
這一切我一直致力於私人github上庫。目前我只有主分支,沒有標籤。 我的第二個步驟是創建一個具有以下composer.json文件在客戶端項目:
"repositories": [
{
"type": "package",
"package": {
"name": "david/scheduler",
"type": "package",
"version": "dev-master",
"source": {
"url": "[email protected]:david/scheduler.git",
"type": "git",
"reference": "master"
}
}
}
],
"require": {
"david/scheduler": "dev-master"
}
當我運行作曲家更新GitHub的項目將被複制並存儲在供應商目錄。但只有我的包。不會加載對symfony/yaml的依賴。
vendor
composer
david/scheduler
另外composer創建一個空的autoload_psr4文件。
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
);
我想也許有在我的建築有些問題......
你可以告訴你註冊的主體工程專用庫的方式嗎?你可以混淆網址以保持私密 –
@ChristopheCoevoet我已經更新了composer.json片段。另外,我在描述中加入了以下內容:「目前我只有主分支,沒有標籤。」 – David
我假設你在代碼片段的錯誤部分添加了'repositories'部分(因爲它沒有意義在'david/scheduler'庫中引用'david/scheduler')。基於這個我在下面回答。 –