我正在学习名称空间和PSR-4自动加载。在我的应用程序中,我只能在Composer.json中的PSR-4下的第一个对象的类别加载。
我会更好地解释,这是我的情况:
文件夹结构:
应用程序- 核 - foo--- foo.phpsrc- 酒吧-bar.php
在Composer.json
中{
"autoload":
{
"psr-4":
{
"core\" : "app/core/",
"myapp\" : "src/"
}
}
}
仅加载了应用程序/核心下的类。如果我使用coreFooFoo
的工作就像魅力一样,但是如果我使用myappBarBar
,则无效。当然,我用composer dump-autoload -o
更新了自动加载并尊重案例敏感的字母。
我的错误在哪里?预先感谢: - )
您的每个文件中的当前名称空间是什么?根据您的文件夹结构和composer.json
中的设置,这些值是您应该拥有的值:
BarBar.php
应该有
<?php
namespace myappBar;
class Bar {}
而
FooFoo.php
应该有
<?php
namespace coreFoo;
class Foo {}
然后,您应该能够使用new myappBarBar
和new coreFooFoo
访问它们。
您的文件名和班级名称很重要。