我正在尝试Silex框架,我遇到了一个问题.... 我试图将路由处理程序委托给控制器(如SF2)。
但我有500错误告诉我无法找到控制器类... 我试图在类似的问题上寻求帮助,但没有答案适用于我的案例......
这是目录架构:
Application
|-src
|-App
|-Controller
|-IndexController
|-vendor
|-...
|-web
|-index.php
|-composer.json
这是“index.php”:
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();
这是“IndexController.php”
namespace App\Controller;
class IndexController
{
public function __construct() {}
public function indexAction()
{
return "Use of controller class : OK";
}
}
这是“composer.json”
{
"require": {
"silex/silex": "~1.3"
},
"autoload": {
"psr-4": {"App\\": "src/App/"}
}
}
(当然,我做了一个“作曲家更新”来管理composer.json文件的更新)
答案 0 :(得分:0)
您没有在IndexController
中定义use
,因此php无法找到控制器类
将使用更改为use App\Controller\IndexController;
或将新类更改为return new Controller\IndexController();