symfony2 Невозможно найти контроллер - PullRequest
0 голосов
/ 14 апреля 2011

Я пытаюсь начать работу с 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" не существует.

Я перебирал код несколько раз, но не могу найти ничего неправильного.

Ответы [ 3 ]

6 голосов
/ 16 апреля 2011

просто добавьте

<?php

в начале файла вашего контроллера: src / Acme / StudyBundle / Controller / HelloController.php

это решило проблему для меня.

0 голосов
/ 15 апреля 2011

Вы, вероятно, используете PR9.Обновление до PR11 (самое последнее), и я бы поспорил, что это будет решено.Разработчики Symfony удалили суффикс 'Bundle' в PR9, но добавил его снова вскоре после .

Кроме того, разработчики Symfony ведут журнал обновлений , который я считаю чрезвычайно полезным.

0 голосов
/ 15 апреля 2011

Afaik, в сообществе разработчиков Symfony 2.0 ведутся дискуссии о том, в каких местах следует хранить расширение "Bundles".

Я только что взял последнюю версию Symfony через Git и следовал вашему коду1: 1.

Я тоже получаю различные сообщения об ошибках, но когда я изменился ...

  1. в src / Acme / StudyBundle / Resources / config / routing.yml

    по умолчанию: {_controller: AcmeStudyBundle: Hello: index} по умолчанию: {_controller: AcmeStudy: Hello: index}

  2. app / config / routing.xml

    resource: "@ AcmeStudyBundle / Resources / config / routing.yml" для ресурса: "@ AcmeStudy / Resources / config / routing.yml"

... я получилдовольно "Привет Райан" в браузере.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...