编辑器中命名空间自动加载的问题

时间:2012-09-14 13:07:57

标签: php namespaces autoload composer-php

这是一个更具化妆性的问题......

我在现有项目中使用composer.phar来自动加载我的课程。

这是名为 Acme 的项目composer.json的示例摘录:

{
    "autoload": {
         "psr-0": {
            "Acme\\Mail": "modules/mail/src/",
         }
    }
}

和我的文件结构相同:

app.php
composer.phar
vendor/
modules/
    mail/
        src/
            Acme/
                Mail.php (contains Acme\Mail\Mail.php)

我必须坚持文件夹" modules / mail"在我的情况下,不能重命名。

基本上这可行,但我必须在Acme下创建一个额外的文件夹src,这有点难看。

如果我想在我的邮件文件夹中省略最高命名空间部分Acme,那么如何定义自动加载,如下所示:

app.php
composer.phar
vendor/
modules/
    mail/
        src/
            Mail.php (contains Acme\Mail\Mail.php)

我仍然可以在php文件中使用它:

use Acme\Mail;
$mail = new Mail();

或者不可能?

2 个答案:

答案 0 :(得分:5)

答案 1 :(得分:1)

如果您不想遵循PSR-0标准(您真的应该重新考虑这样做),您可以使用类映射生成。请参阅http://getcomposer.org/doc/04-schema.md#autoload

上的参考资料