这是一个更化妆的问题…
我正在使用现有项目中的composer.phar自动加载我的类。
这是名为acme的项目的composer.json示例片段:

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

和我的文件结构的PAR相似:
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();

还是不可能?

最佳答案

PSR4将使这成为可能。见:https://github.com/php-fig/fig-standards/blob/master/proposed/psr-4-autoloader/psr-4-autoloader.mdhttp://www.sitepoint.com/battle-autoloaders-psr-0-vs-psr-4/

10-01 11:54
查看更多