В настоящее время я создаю пакет, который может переименовать fooAction в fooAjaxAction, если запрос является запросом Ajax. Как говорится в ответе на этот вопрос , я должен расширить класс контроллера. У меня есть ResourceNotFoundException
если я изменю controller_resolver.class в config.yml. но если я этого не сделаю, у меня нет ошибок (но нет переопределения, так что это не то, что я хочу)
Мои вопросы: как я могу зарегистрировать свой новый контроллер и использовать его? Я не ошибаюсь ? Неправильно ?
Это то, что я сделал:
Вы можете найти мой Bundle для тестирования в packagist и загрузить его через:
composer require "Papoutz/prefix-bundle":"dev-dev"
активируйте его в AppKernel.php:
<?php // AppKernel.php new Papoutz\PrefixBundle\PapoutzPrefixBundle()
конфиг
# App/Config/config.yml parameters: controller_resolver.class: Papoutz\PrefixBundle\Component\Controller\ControllerResolver
Так что это мой пользовательский контроллер.
<?php namespace Papoutz\PrefixBundle\Component\Controller; use Symfony\Component\HttpKernel\ControllerControllerResolver as BaseControllerResolver; use Symfony\Component\HttpFoundation\Request; class ControllerResolver extends BaseControllerResolver { public function getArguments(Request $request, $controller) { parent::getArguments($request, $controller); } }
Я предполагаю, что этот контроллер ничего не делает, например, я добавлю логику в будущем.
Возврат отсутствует в методе getArguments
(из-за его отсутствия, когда я сделал другой ответ), что означает, что контроллер-резольвер фактически не принимает никаких аргументов.
public function getArguments(Request $request, $controller) { // Should have the return.. return parent::getArguments($request, $controller); }