我在一个项目中使用 github 中的自定义存储库,其中包含我的一组工具。
该项目在 /vendor 目录中正确导入包,但我不能使用任何类,因为它没有自动加载包的内容。
我的包 composer.json 文件如下所示:
{
"name": "mynamespace/toolbox",
"description": "Asdfoobar.",
"keywords": ["mynamespace", "toolbox"],
"license": "MIT",
"require": {
"php": ">=5.4"
},
"require-dev": {
"codeception/codeception": "2.0.2",
"codeception/specify": "0.3.6",
"codeception/verify": "0.2.7",
"mockery/mockery": "0.9.1"
},
"autoload": {
"psr-4": {
"Mynamespace\\": "src/Mynamespace",
"Mocks\\": "tests/Mocks"
}
},
"scripts": {
"post-install-cmd": [
],
"post-update-cmd": [
"php vendor/bin/codecept run"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
相反,在项目内部,composer.json 文件如下所示:
"require": {
[...stuff...]
"Mygitrepo/toolbox": "dev-master"
},
"repositories": [
{
"type": "package",
"package": {
"name": "Mygitrepo/toolbox",
"version": "master",
"source": {
"url": "https://github.com/Mygitrepo/toolbox.git",
"type": "git",
"reference": "master"
}
}
}
]
完成作曲家更新后的最终 autoload_psr4.php,作曲家转储如下所示:没有“Mynamespace”的痕迹
return array(
'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
'Ivory\\LuceneSearchBundle\\' => array($vendorDir . '/egeloen/lucene-search-bundle'),
'Facebook\\' => array($vendorDir . '/facebook/php-sdk-v4/src/Facebook'),
);
有什么帮助吗?