我正在构建自定义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
即使包含该文件,会导致该类未被实例化的原因是什么? 谢谢 富
答案 0 :(得分:0)
试试这个:
$this->auth_model = new Modules\Auth\RT\Models\ModelAuth();
答案 1 :(得分:0)
试试这个:
$this->auth_model = new \Modules\Auth\RT\Models\ModelAuth();
要么
$this->auth_model = new Models\ModelAuth();
当您在此命名空间\Modules\Auth\RT
有一个Missing \,所以代码试图包含命名空间两次;
FOR REAL;)