这是作曲器。Json of my bundle(缩短)
{
"name": "acme/my-bundle",
"type": "library",
"version": "0.5.0",
"autoload": {
"psr-4": {
"Acme\MyBundle\": ""
}
}
}
和在我的项目中:
"require": {
"acme/my-bundle": "dev-master"
},
,然后我运行composer install
导致安装。json像
[
{
"name": "acme/my-bundle",
"version": "dev-master",
"version_normalized": "9999999-dev",
"type": "library",
"installation-source": "source"
//
// here must be this:
// "autoload": {
// "psr-4": {
// "Acme\MyBundle\": ""
// }
// },
// but these lines are missing!
//
}
]
和自动加载-psr4.php:
<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
/* here must be this:
* 'Acme\MyBundle\' => array($vendorDir . '/acme/my-bundle'),
* but this line is missing!
*/
);
自动加载消失了,还有其他键,如require
我错过了什么?
我也尝试了psr-0,但没有成功。Autoload_namespaces.php只是一个空数组
我没有提到,我想从私有仓库获取一个包!这将使情况有所不同!
所以我必须重新指定自动加载"require": {
"acme/my-bundle": "dev-master"
},
"repositories": [
{
"type": "package",
"package": {
"version": "dev-master",
"name": "acme/my-bundle",
"source": {
"url": "ssh://git@example.com/acme/my-bundle",
"type": "git",
"reference": "test"
},
// THIS IS |
// ADDITIONAL V
"autoload": {
"psr-4": {
"Acme\MyBundle\": ""
}
}
}
}
]
见https://stackoverflow.com/a/24193122/816362由于@zacharydanger