我正在开发一个包,我想在发布它之前将它存储在vendor目录中。
所以,一旦通过composer安装Basset的服务提供商的路径就是
/siteroot/vendor/jasonlewis/basset/src/Basset/BassetServiceProvider.php
哪个作曲家在自动加载器中映射得很好,现在如果我的是
/siteroot/vendor/hailwood/databaseconfigloader/src/DatabaseConfigLoader/DatabaseConfigLoaderServiceProvider.php
我需要添加什么才能使composer.json文件正确生成自动加载映射?
我可以手动编辑autoload_namespaces.php文件来添加映射
'Hailwood\\DatabaseConfigLoader' => $vendorDir . '/hailwood/databaseconfigloader/src/'
这很有效,但在我做作曲家更新时显然会被覆盖,我尝试添加
"psr-0": {
"Hailwood\\DatabaseConfigLoader": "src/"
}
到composer.json
,但输出'Hailwood\\DatabaseConfigLoader' => $baseDir . '/src/',
不起作用。
答案 0 :(得分:2)
在州,你不尊重PSR-0。所以你有两个解决方案:
您必须将代码放在/siteroot/vendor/hailwood/databaseconfigloader/src/Hailwood/DatabaseConfigLoader/DatabaseConfigLoaderServiceProvider.php
中。之后,只需:
"psr-0":
{
"Hailwood\\DatabaseConfigLoader": "vendor/hailwood/databaseconfigloader/src/"
}
试试吧:
"classmap": ["vendor/hailwood/databaseconfigloader/src/"]