symfony2无法找到控制器

kla*_*aaz 0 controller symfony

我试图从Symfony2开始,但在Symfony 2"书籍"部分"在Symfony 2中创建页面"之后立即遇到问题:

我这样做了:

创建了捆绑包

php app/console init:bundle "Acme\StudyBundle" src
Run Code Online (Sandbox Code Playgroud)

*在app/autoload.php中添加了命名空间*

$loader->registerNamespaces(array(
    'Acme'                         => __DIR__.'/../src',
));
Run Code Online (Sandbox Code Playgroud)

初始化捆绑包

// app/AppKernel.php
public function registerBundles()
{
    $bundles = array(
        // ...
        new Acme\StudyBundle\AcmeStudyBundle(),
    );

    // ...

    return $bundles;
}
Run Code Online (Sandbox Code Playgroud)

在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 }
Run Code Online (Sandbox Code Playgroud)

创建了控制器

// 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>');
    }
}
Run Code Online (Sandbox Code Playgroud)

当我加载页面时:http://localhost/app_dev.php/hello/Ryan Symfony给了我一个例外:

无法找到控制器"AcmeStudyBundle:Hello" - 类"Acme\StudyBundle\Controller\HelloController"不存在.

我多次查看代码但找不到任何错误.

小智 6

加上

<?php

在控制器文件的开头:src/Acme/StudyBundle/Controller/HelloController.php

它解决了我的问题.