在composer中指定PSR-0命名空间的根目录

时间:2012-10-03 19:17:00

标签: php

我目前有以下composer.json文件:

{
    "require": {
        "slim/slim": "2.*"
    },
    "autoload": {
        "psr-0": { "App": "app/" }
    }
}

我正在尝试在app文件夹中实例化一个类,但自动加载器正在寻找:

/var/www/framework/app//App/App.php

显然,第二个参数是包含命名空间的文件夹,而不是命名空间的根目录。我怎样才能加载它:

/var/www/framework/app/App.php

提前致谢!

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是将文件夹从app重命名为App并设置

"psr-0": { "App": "." }

我想其他你需要一个自定义自动加载器。但是,我建议遵循一些经过验证的用例:

src/App/App.php

"psr-0": { "App": "src" }

看起来好奇,但我必须说,我永远不会只调用命名空间或类(甚至两者)只是App;)它没有说任何东西,并且有别名(use MyApplication as App)没有理由再写下尽可能短的标识符。