【问题标题】:Storing composer packages under development in the vendor directory, how to set up autoloader?将开发中的composer包存放在vendor目录下,如何设置autoloader?
【发布时间】:2013-01-30 20:11:49
【问题描述】:

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

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

【问题讨论】:

    标签: php laravel composer-php laravel-4


    【解决方案1】:

    在状态下,您不尊重 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/"]
    

    【讨论】:

      猜你喜欢
      • 2016-01-16
      • 2014-10-11
      • 2022-10-09
      • 2019-04-06
      • 1970-01-01
      • 2012-06-21
      • 2012-12-27
      相关资源
      最近更新 更多