Php “类”;社交墙/控制器/家庭控制器“;不存在

Php “类”;社交墙/控制器/家庭控制器“;不存在,php,namespaces,symfony,silex,Php,Namespaces,Symfony,Silex,我的web应用程序中出现以下错误: InvalidArgumentException in ControllerResolver.php line 160: Class "SocialWall/Controller/HomeController" does not exist. in ControllerResolver.php line 160 at ControllerResolver->createController('SocialWall/Controller/

我的web应用程序中出现以下错误:

InvalidArgumentException in ControllerResolver.php line 160: Class "SocialWall/Controller/HomeController" does not exist.

    in ControllerResolver.php line 160
    at ControllerResolver->createController('SocialWall/Controller/HomeController::indexAction') in ControllerResolver.php line 76
    at ControllerResolver->getController(object(Request)) in HttpKernel.php line 136
    at HttpKernel->handleRaw(object(Request), '1') in HttpKernel.php line 68
    at HttpKernel->handle(object(Request), '1', true) in Application.php line 496
    at Application->handle(object(Request)) in Application.php line 477
    at Application->run() in index.php line 16
我使用Silex~2.0,我刚刚重构了控制器列表,如下所示:

我的树:

  • root/app/app.php
  • root/app/routes.php
  • root/src/Controller/HomeController.php
  • root/web/index.php
index.php:

<?php
/** Front controller */

require_once __DIR__.'/../vendor/autoload.php';

$app = new Silex\Application();

require __DIR__.'/../app/config/dev.php';
require __DIR__.'/../app/app.php';
require __DIR__.'/../app/routes.php';

$app->run();
怎么了

[编辑] 好的,我来修。。在函数的第二个参数route.php中,我将所有的“/”替换为“\”。
初始phpStorm在所有红色的“\”下划,因此我将“\”替换为“/”。。感谢phpStorm…

您指定了错误的命名空间:

namespace Controller;

use Silex\Application;
use Symfony\Component\HttpFoundation\Request;
use SocialWall\Domain\Comment;
use SocialWall\Form\Type\CommentType;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class HomeController extends Controller {
    ...
您还需要exend控制器

编辑#2 您是否也更改了路线:

$app->get('/', "Controller/HomeController::indexAction")->bind('home');

// Detailed info about an article
$app->match('/article/{id}', "Controller/HomeController::articleAction")->bind('article');

// Login form
$app->get('/login', "Controller/HomeController::loginAction")->bind('login');   
//...
我的日志(如果有帮助的话)

[编辑]好的,我修复它。。在函数的第二个参数route.php中,我将所有的“/”替换为“\”
初始phpStorm在红色的“\”下划,因此我将“\”替换为“/”。。谢谢phpStorm…

请参阅我的编辑#2。另外,您是否使用
http://host/app_dev.php/route
,这提供了更多可能有帮助的调试信息。此处的错误与:类“Controller/HomeController”相同。是否可以发布composer.json文件?
{
    "require": {
        "silex/silex": "2.0.*",
        "doctrine/dbal": "2.5.*",
        "twig/twig": "1.24.*",
        "symfony/twig-bridge": "^3.1",
        "symfony/security": "^3.1",
        "symfony/form": "^3.1",
        "symfony/config": "^3.1",
        "symfony/translation": "^3.1",
        "twig/extensions": "^1.3",
        "symfony/validator": "^3.1",
        "sorien/silex-pimple-dumper": "~2.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^5.5",
        "symfony/css-selector": "^3.1",
    "symfony/browser-kit": "^3.1",
    "monolog/monolog": "^1.21"
    },
    "autoload": {
        "psr-4": {"SocialWall\\": "src"}
    }
}
namespace Controller;

use Silex\Application;
use Symfony\Component\HttpFoundation\Request;
use SocialWall\Domain\Comment;
use SocialWall\Form\Type\CommentType;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class HomeController extends Controller {
    ...
$app->get('/', "Controller/HomeController::indexAction")->bind('home');

// Detailed info about an article
$app->match('/article/{id}', "Controller/HomeController::articleAction")->bind('article');

// Login form
$app->get('/login', "Controller/HomeController::loginAction")->bind('login');   
//...
[2016-09-15 10:03:12] SocialWall.INFO: Matched route "{route}". {"route":"home","route_parameters":{"_controller":"SocialWall/Controller/HomeController::indexAction","_route":"home"},"request_uri":"http://socialwall/","method":"GET"} []
[2016-09-15 10:03:12] SocialWall.CRITICAL: InvalidArgumentException: Class "SocialWall/Controller/HomeController" does not exist. (uncaught exception) at /opt/lampp/htdocs/SocialWall/vendor/symfony/http-kernel/Controller/ControllerResolver.php line 160 {"exception":"[object] (InvalidArgumentException(code: 0): Class \"SocialWall/Controller/HomeController\" does not exist. at /opt/lampp/htdocs/SocialWall/vendor/symfony/http-kernel/Controller/ControllerResolver.php:160)"} []
[2016-09-15 10:03:12] SocialWall.INFO: Matched route "{route}". {"route":"_wdt","route_parameters":{"_controller":"web_profiler.controller.profiler:toolbarAction","token":"b65c04","_route":"_wdt"},"request_uri":"http://socialwall/_profiler/wdt/b65c04","method":"GET"} []