symfony2找不到控制器

问题描述

| 我正在尝试从Symfony2开始,但是在Symfony 2的“书”部分“在Symfony 2中创建页面”之后立即遇到了问题: 我这样做: 创建捆绑
PHP app/console init:bundle \"Acme\\StudyBundle\" src
*在app / autoload.PHP添加名称空间*
$loader->registerNamespaces(array(
    \'Acme\'                         => __DIR__.\'/../src\',));
初始化捆绑
// app/AppKernel.PHP
public function registerBundles()
{
    $bundles = array(
        // ...
        new Acme\\StudyBundle\\AcmeStudyBundle(),);

    // ...

    return $bundles;
}
在app / config.routing.yml和src / Acme / StudyBundle / Resources / config / routing.yml中创建路由
# app/config/routing.yml
homepage:
    pattern:  /
    defaults: { _controller: FrameworkBundle:Default:index }

hello:
    resource: \"@AcmeStudyBundle/Resources/config/routing.yml\"


# src/Acme/StudyBundle/Resources/config/routing.yml
hello:
    pattern:  /hello/{name}
    defaults: { _controller: AcmeStudyBundle:Hello:index }
创建控制器
// src/Acme/StudyBundle/Controller/HelloController.PHP

namespace Acme\\StudyBundle\\Controller;
use Symfony\\Component\\HttpFoundation\\Response;

class HelloController
{
    public function indexAction($name)
    {
        return new Response(\'<html><body>Hello \'.$name.\'!</body></html>\');
    }
}
当我加载页面时:http://localhost/app_dev.PHP/hello/Ryan Symfony给了我一个例外: 找不到控制器\“ AcmeStudyBundle:Hello \”-类\“ Acme \\ StudyBundle \\ Controller \\ HelloController \”不存在。 我多次检查代码,但找不到任何错误。     

解决方法

只需添加   
<?php
在控制器文件的开头:src / Acme / StudyBundle / Controller / HelloController.php 它解决了我的问题。     ,Afaik在Symfony 2.0开发人员中进行了讨论,讨论他们应该在哪个位置保留“捆绑包”扩展名。 我刚刚通过Git获取了最新版本的Symfony,并按照1:1的代码进行操作。 我也收到各种错误消息,但是当我更改时... 在src / Acme / StudyBundle / Resources / config / routing.yml中 默认值:{_controller:AcmeStudyBundle:Hello:index} 至 默认值:{_controller:AcmeStudy:Hello:index} app / config / routing.xml 资源:\“ @ AcmeStudyBundle /资源/config/routing.yml \” 至 资源:\“ @ AcmeStudy / Resources / config / routing.yml \” ...我在浏览器中看到一个漂亮的\“ Hello Ryan \”。 希望这可以帮助!     ,您可能正在运行PR9。更新到PR11(latest),我敢打赌这会解决。 Symfony开发人员在PR9中删除了“ Bundle”后缀,但此后不久又将其重新添加。 另外,Symfony开发人员会保留一个更新日志,我认为该日志非常有用。