所以我的目标结构如下,但我得到的是 Fatal error class MainController not found
,我是自动加载和命名空间的新手(但很快就会进入它们)我只需要知道为什么会发生这种情况,希望你们为我解释一下情况?我确实看到了有关 stackoverflow 的答案很少,但是 nuthing 有帮助,我知道我做错了一些事情,但这就是我将学习的方式:)。结构体:
composer.json
src/controllers/MainController.php
以下是我在 composer.json 文件中的自动加载:
"autoload": {
"psr-4": {
"controllers\\": "src/controllers/"
}
}
这就是我的 MainController.php 的样子:
namespace MainController;
class MainController{
function test($name){
echo 'holaaaa'.$name;
}
}
Controller 内部调用: app/loads/loadController.php:::
use MainController;
$MainController = new MainController();
有关供应商/autoload.php 的更多信息
它包含在:index.php 和 index.php 里面我已经包括了 mainapp.php 和里面 mainapp.php 我已经包括了 loadcontroller.php vich 调用 Controller
结构截图:
最佳答案
好的,在您的 Composer 文件中,您说命名空间是 controllers
.在您的 PHP 文件中,您说命名空间是 MainController
.它们需要相同才能自动加载工作。
如果我们要查看您的 Composer 文件,那么 PHP 应如下所示:
namespace controllers;
class MainController {}
这个类应该这样调用:
$MainController = new \controllers\MainController;
或者像这样:
use controllers\MainController;
$MainController = new MainController;
或者,如果你想要一个更好看的类名:
use controllers\MainController as Controller;
$MainController = new Controller;
关于php - 找不到 fatal error 类 MainController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31505948/