Я установил и сконфигурировал свежую копию Symfony 3.4 вместе с последней версией FOSUserBundle 2.1
Поскольку наследование пакетов исчезает, просто настройте маршрут регистрации, чтобы он указывал на ваш контроллер:
# config/routes.yaml
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
fos_user_registration_register:
path: /register
controller: AppBundle\Controller\RegistrationController::registerAction
А затем внедрите фабрику форм в свой контроллер:
# app/services.yaml, keep all the standard defaults above
AppBundle\Controller\RegistrationController:
arguments:
$formFactory: '@fos_user.registration.form.factory'
И вам следует хорошо поехать.
Единственный оставшийся вопрос - почему вы захотите сделать это в первомместо?В основном вам нужно скопировать / вставить весь registerAction из вашего базового класса.В большинстве случаев вам нужно создать подписчика событий FOS и прослушивать события REGISTRATION_INITIALIZE, REGISTRATION_SUCCESS, REGISTRATION_COMPLETED или REGISTRATION_FAILURE.