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

时间:2014-07-20 19:05:46

标签: php laravel composer-php autoload

我正在尝试做什么:设置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命名空间的Monolog包吗?

1 个答案:

答案 0 :(得分:0)

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