Silex名称空间:类MainController不存在

时间:2015-06-15 21:16:09

标签: php class namespaces autoload silex

我尝试使用Silex Framework,但我认为我的命名空间有问题。

当我实现我的类MainController时,我有以下错误: 类“MainController”不存在

这里是MainController.php中的名称空间声明:

    namespace App\Controllers;

    use Silex\Application;

    class MainController implements \Silex\ControllerProviderInterface { 
....

在我的app.php中:

$app->mount("/", new \App\Controllers\MainController());

我的composer.json中有一个自动加载:

    "autoload": {
    "psr-4": {"App\\": "app/"}
}

我的项目的审核就像它:

| --app /
| ---- app.php
| ----控制器/
| ------- MainController.php
| --web /
| ----的index.php

非常感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

我认为您的问题是由您命名目录Warning: strip_tags() expects parameter 1 to be string, array given in on line 32 的方式引起的。根据{{​​1}}标准的文档:

  

5)完全限定类名中的字母字符可以是小写和大写的任意组合。

     

6)所有类名必须以区分大小写的方式引用。

因此,请将您的目录重命名为controllers并重新运行PSR-4

另外,请查看ServiceControllerProvider关于将控制器实例设置为回调的正确方法。传递新实例可能不是最好的(如果不是错误的)做事方式。你应该做的事情如下:

Controllers