Maxim Kainov
atcq (Алексей)
создаваться может разная форма же, это никак не связано с действиями, которые по её отправке выполняются
Maxim Kainov
atcq (Алексей)
а еще форма может в отдельном проекте быть, в spa приложении, вопрос, у бекенда при этом станет меньше бизнес логики?
Maxim Kainov
Форма это и бэкенд в том числе
atcq (Алексей)
не, бекенд начинается с получения данных из post\очереди\вебсокета, а ui для генерации этих данных вообще может быть любым и строится исходя из удобства пользователя
atcq (Алексей)
это странно к бл относить
Maxim Kainov
atcq (Алексей)
форма данные генерирует, не принимает
atcq (Алексей)
фактически, если ты принимаешь пачку данных - не факт, что они вообще формой созданы
Maxim Kainov
Maxim Kainov
Валидатором и сериалайзером
atcq (Алексей)
может это дамп, который удобного момента ждал
Maxim Kainov
Maxim Kainov
В ентити сохраняет
atcq (Алексей)
если нужно добавить клиентскую валидацию - что происходит?
Maxim Kainov
atcq (Алексей)
о чем я и пишу
Maxim Kainov
atcq (Алексей)
смешение в том, что по факту указываются не требования к данным, что должна выдать форма, а описывается сама форма, неподсредственно
Maxim Kainov
Maxim Kainov
Maxim Kainov
Ilya 🃏
Привет, подскажите, является ли такая конструкция внутри entity нормальной практикой?
Ilya 🃏
Ilya 🃏
Добавление сущности-потомка с проверкой и созданием внутри сущности-родителя
Vlad
первый форич не нужен
Ilya 🃏
Или лучше вынести в сервис?
Ilya 🃏
По сути WebinarEmployee это jointable с User и Webinar полями
Maxim Kainov
А если, например, WebinarEmployee понадобится создать через фабрику?
Maxim Kainov
А фабрике нужны будут сторонние сервисы
Ilya 🃏
Возможно такое, что в будущем и добавятся какие-нибудь дополнительные поля для этой сущности, есть такое
Ilya 🃏
Тогда, наверное, лучше вынести
Maxim Kainov
Думаю, да
atcq (Алексей)
https://github.com/symfony/form/blob/48df9ae9692207e65f09a5080367f4ddf55cced8/FormRenderer.php
Maxim Kainov
Хотя, первую часть, можно было бы и оставить, наверное
Ilya 🃏
Ilya 🃏
Ilya 🃏
Так делают даже в доке официальной
Ilya 🃏
Тут и форич не нужен и все проще в разы
Ilya 🃏
Но создание переносится на слой сервиса
Maxim Kainov
Ну здесь вообще логики нет практически, просто добавление элемента в массив
Maxim Kainov
Ilya 🃏
Еще вопрос, если добавить @ORM\UniqueEntity(fields={"webinar", "user"}), то при добавлении сущности по уже существующему совпадению вебинар-юзер, будет ошибка или просто её проигнорит? Или ->contains метод сам не пропустит такое?
Maxim Kainov
Maxim Kainov
Maxim Kainov
В браузере
Maxim Kainov
atcq (Алексей)
при том, как именно будет выглядеть форма в данный момент - дело фронтенда, может какие-то данные он из контекста подставит, убрав инпуты
Maxim Kainov
atcq (Алексей)
а на бекенд данные придут в том виде, который он указал в требованиях
Maxim Kainov
Maxim Kainov
atcq (Алексей)
А если требования динамические?
фронтенд тоже не из дерева сделан, приняли json с описанием того что нужно - сгенерировали интерфейс с учетом требований, текущей страницы и фазы луны
Maxim Kainov
Maxim Kainov
atcq (Алексей)
и что будешь делать, приложение с нуля писать, если потребуется полноценный фронтенд, но с динамическими формами?
atcq (Алексей)
говорю же, смешение слоёв
Maxim Kainov
atcq (Алексей)
а то что было - выкинешь или будешь переписывать?
Maxim Kainov
Maxim Kainov
Можно и оставить их, немного переписать
atcq (Алексей)
вот, мы наконец подошли к тому, что это не бизнес логика, потому что операции остались те же, сменился только тип фронтенда, но ты уже должен этот код переписать
atcq (Алексей)
если бы там была только генерация json с требованиями, то ок, он бы пережил и замену фронта и еще много что
Maxim Kainov
Maxim Kainov
Maxim Kainov