【问题标题】:Silex - Controller class not found in route.phpSilex - 在 route.php 中找不到控制器类
【发布时间】:2016-02-20 19:59:40
【问题描述】:

我正在构建一个以 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": { "": "./" } },但无法正常工作

【问题讨论】:

    标签: php silex autoloader


    【解决方案1】:

    尝试将控制器命名空间更改为Bento\Supervisor。我不认为命名空间应该包含类名。

    namespace Bento\Supervisor;
    
    use Silex\ServiceProviderInterface;
    use Silex\Application;
    
    class SupervisorController implements ServiceProviderInterface
    {
    

    并将自动加载添加到作曲家

    "autoload": { "psr-4": { "Bento\Supervisor": "./src/supervisor" } }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-02
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 2015-02-14
      • 1970-01-01
      • 2016-02-16
      • 2021-10-24
      相关资源
      最近更新 更多