在供应商目录中存储正在开发的编写器包,如何设置自动加载器?

时间:2013-02-14 21:54:08

标签: php laravel composer-php laravel-4

我正在开发一个包,我想在发布它之前将它存储在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/',不起作用。

1 个答案:

答案 0 :(得分:2)

在州,你不尊重PSR-0。所以你有两个解决方案:

尊重PSR-0

您必须将代码放在/siteroot/vendor/hailwood/databaseconfigloader/src/Hailwood/DatabaseConfigLoader/DatabaseConfigLoaderServiceProvider.php中。之后,只需:

"psr-0":
{
    "Hailwood\\DatabaseConfigLoader": "vendor/hailwood/databaseconfigloader/src/"
}

使用 classmap 自动加载

试试吧:

"classmap": ["vendor/hailwood/databaseconfigloader/src/"]