我正在建立一个网络应用程序与php silex作为后端。我有以下目录结构:
bento
\app
\app.php
\bootstrap.php
\src
\supervisor
\SupervisorController.php
\Application.php
\routes.php
\composer.json
\vendor文件内容如下;
pp.php
<?php
require_once __DIR__ . '/bootstrap.php';
$app = new Silex\Application();
require_once __DIR__ . '/../src/routes.php';
return $app;
?>bootstrap.php
<?php
require_once __DIR__ . "/../vendor/autoload.php";
?>SupervisorController.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.
}
}routes.php
<?php
$app->mount('/supervisor', new \Bento\Supervisor\SupervisorController\SupervisorController());composer.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": { "": "./" } },但无法正常工作
发布于 2016-02-20 19:59:40
尝试将控制器命名空间更改为Bento\Supervisor。我不认为命名空间应该包含类名。
namespace Bento\Supervisor;
use Silex\ServiceProviderInterface;
use Silex\Application;
class SupervisorController implements ServiceProviderInterface
{并将自动加载添加到composer
"autoload": { "psr-4": { "Bento\Supervisor": "./src/supervisor" } }https://stackoverflow.com/questions/35501984
复制相似问题