0

我正在开发一个包,我想在发布之前将它存储在供应商目录中。

因此,一旦通过 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/',不起作用。

4

1 回答 1

2

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

尊重 PSR-0

您必须将代码放入/siteroot/vendor/hailwood/databaseconfigloader/src/Hailwood/DatabaseConfigLoader/DatabaseConfigLoaderServiceProvider.php. 之后,只需执行以下操作:

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

使用类映射自动加载

你试一试 :

"classmap": ["vendor/hailwood/databaseconfigloader/src/"]
于 2013-02-14T22:27:01.870 回答