Php 在Silex中为控制器使用命名空间

Php 在Silex中为控制器使用命名空间,php,composer-php,silex,Php,Composer Php,Silex,我正在尝试Silex框架,但遇到了一个问题。。。。 我尝试将路由处理程序委托给控制器(如SF2) 但是我有一个500错误,告诉我找不到控制器类。。。 我试图在类似的问题上寻求帮助,但没有一个答案适合我的情况 以下是目录体系结构: Application |-src |-App |-Controller |-IndexController |-vendor |-... |-web |-index.php |-composer.json

我正在尝试Silex框架,但遇到了一个问题。。。。 我尝试将路由处理程序委托给控制器(如SF2)

但是我有一个500错误,告诉我找不到控制器类。。。 我试图在类似的问题上寻求帮助,但没有一个答案适合我的情况

以下是目录体系结构:

Application 
|-src   
  |-App   
    |-Controller
      |-IndexController 
|-vendor   
  |-... 
|-web   
  |-index.php
|-composer.json
下面是“index.php”:

这里是“IndexController.php”

这里是“composer.json”


(当然,我做了一个“composer update”来管理composer.json文件的更新)

您没有在
use
中定义
IndexController
,因此php找不到控制器类。

将使用更改为
使用App\Controller\IndexController
或新类返回新控制器\IndexController()

您需要
使用App\Controller\IndexController或用您拥有的代码实例化
新控制器\IndexController
,谢谢!我尝试了太多的东西,以至于忘了再次添加完整路径。。。。。
require_once __dir__.'/../vendor/autoload.php';
use App\Controller;

$app = new Silex\Application();
$app['debug'] = true;
$app->register(new Silex\Provider\ServiceControllerServiceProvider());
$app['index.controller'] = $app->share(function() use ($app) {
    return new IndexController();
});
$app->get('/', 'index.controller:indexAction');
$app->run();
namespace App\Controller;

class IndexController
{
    public function __construct() {}
    public function indexAction()
    {
        return "Use of controller class : OK";
    }
}
{
    "require": {
        "silex/silex": "~1.3"
    },
    "autoload": {
        "psr-4": {"App\\": "src/App/"}
    }
}