Как расширить пакеты Symfony2, использующие аннотированные контроллеры? - PullRequest
2 голосов
/ 29 марта 2012

У меня есть BaseBundle, который мне нужно расширить, чтобы переопределить небольшое количество шаблонов и, в конечном итоге, функции контроллера.Я использую аннотации, поэтому app / config / routing.yml ссылается на "@ BaseBundle / Controller /".

Когда я создаю CustomBundle, который расширяет BaseBundle routing.yml, просто выбирает пустую папку ControlB в CustomBundle.Есть ли способ заставить это вести себя правильно, кроме создания классов для переопределения очень одного контроллера в BaseBundle, даже если я не хочу ничего менять?

ОБНОВЛЕНИЕ: Расширение BaseBundle также имеет дополнительную проблему, нарушая все его@Template () аннотации.Если я создаю пустой контроллер, который расширяет контроллеры BaseBundle, он жалуется на невозможность найти несуществующий шаблон CustomBundle: Default: index.html.twig.

1 Ответ

1 голос
/ 05 июня 2012

У меня возникла та же проблема, и я обнаружил, что не изменяет основной файл комплекта (AcmeCustomBundle.php), поскольку в документации предлагается решить эту проблему.

т.е. не использовать:

public function getParent()
    {
        return 'AcmeBaseBundle';
    })

в моем контроллере по умолчанию CustomBundle У меня есть:

use Acme\BaseBundle\Controller\DefaultController as BaseDefaultController;
class DefaultController extends BaseDefaultController

В моих контроллерах BaseBundle я должен был явно определить все мои аннотации @Template () как @Template ("AcmeBaseBundle: Default:index.html.twig ") и т. д., а затем при переопределении определенных действий контроллера я либо использую @Template () в действиях контроллера CustomBundle для использования шаблона CustomeBundle, либо снова явно устанавливаю шаблон BaseBundle, если я не хочу переопределять шаблон.Для любых действий, которые вы не хотите отменять, просто не используйте контроллер CustomBundle, и будет использоваться контроллер BaseBundle.

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