【问题标题】:Composer + Laravel 4.2 - Unable to generate PSR-0 autoloaderComposer + Laravel 4.2 - 无法生成 PSR-0 自动加载器
【发布时间】:2014-09-11 07:08:33
【问题描述】:

我正在尝试做的事情: 设置 PSR-0 自动加载,但作曲家正在生成 PSR-4 自动加载文件。

我正在使用:

1) Laravel 4.2

2) Composer 版本 e77435cd0c984e2031d915a6b42648e7b284dd5c 2014-07-02 15:44:54

我的 composer.json:

    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php",
            "app/libraries"
        ],
        "files": [
        "app/libraries/custom_helpers.php"
        ],
        "psr-0":{
            "MyApp":"app/"
        }
    }

//rest of the file is omitted

在此之后,如果我在终端中运行composer dump-autoload,它应该会在

中生成一个文件

vendor/composer 目录名为 autoload_psr0.php

相反,它会生成一个 autolooad_psr4.php,它看起来像这样:

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
);

从作曲家文档中,我了解到仍然支持 psr-0。

这可能是因为 Monolog 包需要 PSR-4 命名空间吗?

【问题讨论】:

  • 您的命名空间 MyApp 必须根据 composer psr-0 documentation 在末尾使用两个斜杠指定。我不确定这是否是问题。
  • 感谢您指出这一点。但这似乎不是错误。

标签: php laravel composer-php autoload


【解决方案1】:

看来 laravel 实际上并没有为 psr0 标准创建单独的配置。 事实上,它默认有一个 autoload_real.php 文件,它引用一个 ClassLoader 类并检查 psr-0。 这些文件可以在 vendor/composer 目录中找到。

【讨论】:

    猜你喜欢
    • 2014-03-24
    • 2014-07-25
    • 2014-02-14
    • 2015-04-09
    • 2015-01-08
    • 2019-12-22
    • 2016-04-27
    • 2014-03-17
    • 2014-07-18
    相关资源
    最近更新 更多