psr-4中的更多路径

时间:2016-06-26 15:40:50

标签: php composer-php

我正在学习命名空间和psr-4自动加载。 在我的应用程序中,我只能在composer.json中的psr-4下加载第一个对象的类。

我会更好地解释,这是我的情况:

文件夹结构:

app
- core
-- Foo
--- Foo.php
src
- Bar
-- Bar.php

在composer.json

{
    "autoload": 
    {
        "psr-4":
        {
            "core\\"  : "app/core/",
            "myapp\\" : "src/"
        }      
    }
}

仅加载app / core下的类。如果我使用\core\Foo\Foo就像魅力,但如果我使用\myapp\Bar\Bar不起作用。当然,我用composer dump-autoload -o更新了自动加载,并尊重了区分大小写的字母。

我的错误在哪里?提前谢谢: - )

1 个答案:

答案 0 :(得分:2)

每个文件中您当前的命名空间是什么?根据您在composer.json中的文件夹结构和设置,这些是您应该拥有的值:

Bar\Bar.php应该有

<?php

namespace myapp\Bar;

class Bar {}

Foo\Foo.php应该有

<?php

namespace core\Foo;

class Foo {}

然后,您应该可以使用new myapp\Bar\Barnew core\Foo\Foo访问它们。

您的文件名和类名相同非常重要。