Как правильно будет?

Начала изучать Symfony. Но перед этим сидела на Yii2. Поэтому изучение идет в сравнении. И в связи с этим возникли вопросы. Меня интересует как это принято в Symfony. И конкретно в 4 версии. Хотелось бы сразу идти по правильному пути, а не по пути грабель.
  1. При роутинге в доках рекомендуется 2а подхода - роутинг в конфиге и аннотации. Мне аннотации больше понравились. Но вот как больше принято это делать? Т.к. в Yii2 там один раз прописал правила для controller/view и всё.
  2. Как я поняла в Symfony нет моделей в явном виде. Здесь они сущности. И вот тут для меня очень не привычна работа с формами. Получается вначале создаешь сущность, затем класс, где создаешь форму и только затем уже это всё получаешь в контроллере. Но есть код, где создание формы идет сразу в контроллере. Какой более правильный подход в этом случае?
  3. И вопрос по валидации в формах. Мне больше понравилась валидация в аннотациях у сущностей. Но я встречала примеры, где валидацию прописывали на этапе формирования формы. Какой подход более правильный?
  • Вопрос задан
  • 320 просмотров
Пригласить эксперта
Ответы на вопрос 1
prototype_denis
@prototype_denis
Symfony
1. Где вам удобнее. Аннотации это всего лишь один из способов хранения конфигурации.

2. От ситуации. Формам нужна не сущность, а какой-нибудь клас (и то, необязательно), чтобы заммапить данные. И здесь также, как вам удобнее. Например форму для удаления, смело в контроллер, для редактирования в отдельный класс, которую можно переиспользовать.

3. Холивара вопрос. Видел людей с пеной у рта доказывающих, что всё нужно прописывать в типах, и других, у которых формы с суммарным количеством полей переваливало за 300, где прописаны только поля... Тут также всё от ситуации. Если эта форма будет переиспользоваться, будут разные группы валидации, обработчики будет разные, то имеет смысл оставлять их минимально нагруженными и выносить всё, и наоборот, если форма крайне специфичная, то лучше не размазывать по приложению работу с онной.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы