2015-07-19 122 views
0

所以我有什么,我努力的目标。但我得到的是Fatal error class MainController not found以下结构,我是新来自动加载和命名空间的东西(但进入他们快)我只需要知道为什么会发生这种情况,希望你们对我解释一下情况?我确实在stackoverflow上看到了很少的答案,但是nuthing有帮助,我知道我正在做一些非常错误的事情,但那就是我将学习的东西:)。结构:致命错误类MainController

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; 

    } 

} 

控制器里面调用:应用程序/loads/loadController.php :::

use MainController; 

$MainController = new MainController(); 
对供应商

更多信息/ autoload.php

它里面包含:index.php文件和内部的index.php我已经包含了mainapp.php和内部mainapp.php我已经包含了loadcontroller.php VICH调用控制器

结构截图:

this is the sreenshot of where files are located.

+0

你怎么称呼控制器? –

+0

@ SverriM.Olsen更新了问题。 –

回答

1

好吧,在你的作曲家文件你说的命名空间是controllers。在你的PHP文件中,你说名字空间是MainController。他们需要是相同的自动加载工作。

如果我们因你的作曲家文件去那么PHP应该是这样的:

namespace controllers; 
class MainController {} 

和类应该被称为是这样的:

$MainController = new \controllers\MainController; 

或者这样:

use controllers\MainController; 
$MainController = new MainController; 

或者,如果你想要一个更漂亮的类名:

use controllers\MainController as Controller; 
$MainController = new Controller; 
+0

这就是我得到:'致命错误:类“控制器\ MainController”在/Applications/MAMP/htdocs/drive/app/loads/loadController.php没有找到就行3'还是做错了什么,我认为:O型 –

+0

尝试在你的终端中运行:'composer dump-autoload'(或者如果你正在使用PHAR版本,则使用'php composer.phar dump-autoload')。 –

+0

已经做到了这一点,并更新了作曲家。但它说同样的事情,也许可以是我怎么打电话给控制器? ,,我已经添加了我打电话给控制器的文件的路径。 –