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