【发布时间】:2014-05-15 11:51:23
【问题描述】:
我正在构建一个自定义 CMS 并设置了一个自动加载器,并且已经适应了命名空间的使用。大多数情况下加载正常,但在某些情况下 PHP 报告它找不到类,类文件已包含在内。
一旦一个文件被包含(使用 require),它也应该被实例化。 父控制器被实例化,然后子控制器尝试实例化它自己的一些依赖项。
$this->auth = new \Modules\Auth\RT\Auth();
这将在 /modules/auth/rt/auth.php 中查找一个文件,并且确实如此,并且该类已正确实例化。
Auth的命名空间是:
namespace Modules\Auth\RT;
auth 类尝试加载自己的依赖项,尤其是模型。
$this->auth_model = new Models\ModelAuth();
这里要包含的文件位于 /modules/auth/rt/models/modelauth.php 它被成功包含,但这是 PHP 说我找不到这个类的地方。
Fatal error: Class 'Modules\Auth\RT\ModelAuth' not found in /Users/richardtestani/Documents/ShopOpen-Master/shopopen/modules/auth/rt/auth.php on line 12
即使包含文件,什么会导致类没有被实例化? 谢谢 丰富
【问题讨论】:
标签: php namespaces autoloader