Вот неправильный способ решения вашей проблемы:
class EtudiantController extends AbstractController
{
private $form;
public function __construct(FormFactoryInterface $formFactory)
{
$this->form = $formFactory->create(TextType::class, new Etudiant());
}
}
Я говорю, что это неправильно (даже если это будет работать), потому что создание таких вещей, как формы, действительно должно выполняться в отдельных действиях контроллера, а не в скрытомв конструкторе. Возможно, вы пытаетесь применить «Не повторяйте себя» (СУХОЙ), но в подобных случаях «Не путайте свое будущее» имеет преимущество.
А что касается необходимости внедрения фабрики форм, я бы еще разпризываем вас взглянуть на исходный код Symfony для AbstractController, а также ControllerTrait. Понимание того, как работает внедрение зависимостей, имеет решающее значение для возможности эффективного использования инфраструктуры.