php - 找不到 fatal error 类 MainController

标签 php namespaces composer-php autoload

所以我的目标结构如下,但我得到的是 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

结构截图:

this is the sreenshot of where files are located.

最佳答案

好的,在您的 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/

相关文章:

php - 如何更改 Sublime text 2 中类属性的颜色?

php - 添加 'rd or ' th 或 'st 取决于数字

php - 您的要求无法解析为一组可安装的软件包 (phpseclib/bcmath_compat)

php - 如何在 travis 中运行 composer.phar self 更新

PHP Mysql 查询不返回结果

php - 如何阻止 yii cgridview 在每个 ajax 更新调用中获取它的 jquery 文件

以::开头的 C++ 嵌套命名空间定义

css - 没有嵌套选择器的封装/命名空间 CSS 和 Sass 扩展

javascript - 如何将变量传递给 Javascript 命名空间

git - 用于生产和暂存/开发的不同 composer.json 文件