我正在将头发拔出,这并不经常发生。
我试图将作曲家自动加载器与我的目录一起使用。自动加载器与另一个目录完美搭配。
我正在使用以下归档
-Root
| application
| Module
| Users
| Users.php
users.php包含以下代码
<?php
namespace ModuleUsers;
class Users {
public function test() { return "Testing hippie-yaay!"; }
}
composer.json包含以下PSR-0自动加载
"psr-0":{"Module\": "application/"}
在autoLoader_namespaces.php中汇编到以下
'Module\' => array($baseDir . '/application'),
又是完全正确的(Ive通过回声来测试了基于基于的application字符串。这是完全正确的。
现在。在我的主班上,我做以下
<?php
namespace SystemCore;
use ModuleUsersUsers;
class Initiater {
public function bootSystem() {
$u = new Users();
}
}
(这基本上是我所做的,当然,我在顶部谈论的另一个PSR-0自动加载效果很好,工作正常。)
i然后得到以下错误。
致命错误:
中找不到类'模块用户用户'
fyi:我只尝试使用"use ModuleUsers;"
和"new ModuleUsersUsers();"
返回相同的错误。
我希望你们中的一个知道这里发生了什么。此致。乔纳斯
new UsersUsers();
可能是您正在寻找的
我也有同样的问题。我进行了"作曲家更新",并解决了我的问题。由于某种原因,我在autoload_classmap.php
中有一个命名空间不匹配'Module' => $baseDir . '/application/Module/Users/Users.php',
,它缺少有关关键部分的一些信息:
'Module\Users' => $baseDir . '/application/Module/Users/Users.php',
因此,就像其他提到的一样,这可能是由于一些无效的数据不符合您的代码。
有时您进行修改(例如修复错字),忘了再生自动加载器,一切似乎都不错。
如果有人仍然遇到这个问题:挖掘ClassLoader.php
的findFileWithExtension()
后,我发现对我来说,这是一个案例问题,如Sven提到。该类命名为AbcTest
,而文件名为ABCTest.php
。更一般而言,确保文件名与班级名称,案例和全部匹配;只是情况错误可能更棘手。