Composer + Laravel 4.2 -无法生成PSR-0自动加载器


Composer + Laravel 4.2 - Unable to generate PSR-0 autoloader

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

我用:

1) Laravel 4.2

2)作曲家版本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仍然被支持。

这可能是由于独白包需要PSR-4命名空间吗?

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