我正在构建一个以php silex作为后端的Web应用程序。我有以下目录结构:
bento
'app
'app.php
'bootstrap.php
'src
'supervisor
'SupervisorController.php
'Application.php
'routes.php
'composer.json
'vendor
文件内容如下;
页.php
<?php
require_once __DIR__ . '/bootstrap.php';
$app = new Silex'Application();
require_once __DIR__ . '/../src/routes.php';
return $app;
?>
引导程序.php
<?php
require_once __DIR__ . "/../vendor/autoload.php";
?>
主管控制器.php
<?php
namespace Bento'Supervisor'SupervisorController;
use Silex'ServiceProviderInterface;
use Silex'Application;
class SupervisorController implements ServiceProviderInterface
{
public function register(Application $app) {
$controllers = $app['controllers_factory'];
$app->get('/supervisor/processes', function() use ($app){
});
return $controllers;
}
public function boot(Application $app)
{
// TODO: Implement boot() method.
}
}
路线.php
<?php
$app->mount('/supervisor', new 'Bento'Supervisor'SupervisorController'SupervisorController());
作曲家.json
{
"require": {
"silex/silex": "~1.3"
}
}
我收到以下错误
PHP Fatal error: Class 'Bento'Supervisor'SupervisorController'SupervisorController' not found in /somedir/Documents/projects/mv2/bento/src/routes.php on line 3
我尝试在composer.json
中添加"autoload": { "psr-4": { "": "./" } }
但无法使其工作
尝试将控制器命名空间更改为 Bento'Supervisor
。我认为命名空间不应该包含类名。
namespace Bento'Supervisor;
use Silex'ServiceProviderInterface;
use Silex'Application;
class SupervisorController implements ServiceProviderInterface
{
并将自动加载添加到作曲家
"autoload": { "psr-4": { "Bento'Supervisor": "./src/supervisor" } }