Symfony 3 и FOSUser 2.1: контроллер регистрации ошибок - PullRequest
0 голосов
/ 11 июня 2018

Я использую FOSUserBundle на моем сайте Symfony (3.0.6).Я недавно обновил свои зависимости с помощью composer, и теперь у меня FOSUserBundle версии 2.1.0.

Проблема: я перегрузил контроллер регистрации (он работал хорошо), но теперь у меня возникает эта ошибка, когда я хочу получить доступ к своей регистрациистраница:

Исправляемая фатальная ошибка: аргумент 1, передаваемый в FOS \ UserBundle \ Controller \ RegistrationController :: __ construct (), должен реализовывать интерфейс Symfony \ Component \ EventDispatcher \ EventDispatcherInterface, не заданный, вызываемый в D: \wamp64 \ www \ mySite \ var \ cache \ dev \ classes.php в строке 2457 и определен 500 Внутренняя ошибка сервера - ContextErrorException

В контроллере регистрации FOSUserBundle были добавлены следующие строки:

class RegistrationController extends Controller
{
    private $eventDispatcher;
    private $formFactory;
    private $userManager;
    private $tokenStorage;

    public function __construct(
        EventDispatcherInterface $eventDispatcher,
        FactoryInterface $formFactory,
        UserManagerInterface $userManager,
        TokenStorageInterface $tokenStorage
    ) {
        $this->eventDispatcher = $eventDispatcher;
        $this->formFactory = $formFactory;
        $this->userManager = $userManager;
        $this->tokenStorage = $tokenStorage;
    }

    // ...
}

В предыдущей версии пакета не было конструктора.

У кого-нибудь есть идеи

Заранее спасибо.

1 Ответ

0 голосов
/ 09 августа 2018

Загляните в fos user CHangelog (https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Changelog.md), они изменили способ, которым вам нужно перезаписать контроллер:

"Рефакторинг контроллеров и команд для использования DI. Проекты, расширяющие эти классы, будут нуждаться вчтобы адаптировать их код (но лучше по возможности использовать поддерживаемые точки расширения). "

...