Kirill
это вообще адский изврат смешивать аппликейшн слой и доменный)
Kirill
хз зачем денормализовывать энтити, короче
Павел
это вообще адский изврат смешивать аппликейшн слой и доменный)
Можно забить на эти страшные слова если они не нужны )
Kirill
а если подобный говнокодинг норм, то как бы проще тогда уж ларку заюзать, вместо симфы) там всяко на порядки будет проще формошлёпить подобное
Павел
хз зачем денормализовывать энтити, короче
Ну много приложений который работают по доке форм симфы и все это приносит деньги, остальное вторично
Павел
а если подобный говнокодинг норм, то как бы проще тогда уж ларку заюзать, вместо симфы) там всяко на порядки будет проще формошлёпить подобное
Вопрос говнокода очень расплывчит. Не все что сложно и чисто то хорошо, а что иначе - плохо. Все же кодится для решений проблем и $ бизнеса, а не ради кода.
Kirill
создать дто под реквест - дело пары минут)
Kirill
а решений проблем на годы вперёд
Павел
а решений проблем на годы вперёд
Проживет ли столько проект, будет ли он жить на этом языке, будет ли развиваться домен этот
Павел
Например есть обычный справочник, обычный круд. Можно формошлепнуть на денормализации и апи платформе за 20 минут, а можно разбить по слоям, дто, сервисам за 1 час. Вопрос, что из этого профитнее, если данный справочник почти не имеет расширения даже в теории
Kirill
а можно нахреначить на ларке за 2 минуты, ага)
Павел
а можно нахреначить на ларке за 2 минуты, ага)
Ну если на ларке за 2 минуты, то на платформе будет столько же )
Kirill
потому что там настроить коннекшн к базе надо и на этом всё)
Павел
а можно нахреначить на ларке за 2 минуты, ага)
Опять же Ларка тот же инструмент, причем популярнее симфы вроде как, и на нем много рабочих проектов. Вопрос - почему тогда Ларка это плохо
Kirill
потому что она для говнокодинга запиливалась
Kirill
как раз под подобные кейсы
Kirill
чтобы написать подобный кейс со справочником, который ты описал нужно написать ровно 1 строчка: Route::get('/items', Item::all(...));
Павел
В апи платформе и роутинга не надо добавлять если устраивает дефолт)
Kirill
Ну минимум сущность завести
class Item extends Model {} завёл)
Kirill
на этом всё
Павел
class Item extends Model {} завёл)
Уже не помню как там и надо ли описывать пропсы))
Kirill
я тоже не помню как там
Kirill
но помню что не надо ничего писать
Павел
Да, но миграции там ручные, что в принципе пропсы а доктрина имеет диф, что 1:1
Kirill
оно по дефолту select * фигачит
Kirill
в любом случае на симфе всегда хочется писать нормально
Kirill
ну мне по крайней мере
Spider
Коллеги проститк за общий вопрос - в Симфони есть какието общепризнанные решения для например магазина и сайта визитки? ну типа как в друпе коммерс есть для магазов
Kirill
друпал - это CMS, а симфа - фрейм.
Kirill
более того - это слабосвязанный компонентный фрейм
Павел
в любом случае на симфе всегда хочется писать нормально
У нее просто меньше инструмента для того что бы наговнять + data mapper если говорить про из коробки)
Spider
в гугле не забанили - хоч у послушать эживого опыта
Spider
друпал - это CMS, а симфа - фрейм.
Это ясно - но может есть решения чтобы начать сползать с цмс
Павел
доктрина не из коробки если что)
Ну понятно что это отдельная либа обернутая в компонент. Даже миграции отдельно.
Kirill
да в принципе симфа более строгая
Павел
Имеется ввиду все же что идет обычно Лара+Элока, Симфа+Доктрина
Spider
ну как бы... твои руки)
руки шефу не покажешь
Kirill
да и кстати современная симфа помощнее на порядки ларки будет
Kirill
типа во времена симфы 2 лара была на голову выше, но с тех пор она вообще никак не поменялась, а в симфони понапихали овердохрена чего крутого
Павел
да и кстати современная симфа помощнее на порядки ларки будет
Ну di мощный, а что еще прям крутого? Мессенджер мне нра, но наверное скажешь что гавно)
Kirill
DI
Kirill
и сериалайзер
Spider
просто не знаю что бы на симфе начать писать
Kirill
три компонента, которые выкинуть нахрен и ничего не поменяется) только лучше всем станет
Kirill
а, ну и флекс канеш
Kirill
4 получается
Павел
формы)
Формы прикольные, но надо вникать прям хорошо и глубоко
Kirill
чаму?
десериализуй хешмапу array<non-empty-string, array{example?: UserDTO}> через симфу))) в поле
Kirill
final readonly class UsersListDTO { /** @var iterable<non-empty-string, array{example?: UserDTO}> */ public function __construct( public iterable $users, ) {} } грубо говоря
Dmitriy
valinor конечно прикольный, но страшно завязываться на него, забросят и приплыли
Kirill
да и то, потому что он относительно новый
Kirill
минус валинора только один - это что нельзя типы в конфиг или атрибуты завернуть
Kirill
когда завезут - JMS можно выкидывать смело)
Павел
final readonly class UsersListDTO { /** @var iterable<non-empty-string, array{example?: UserDTO}> */ public function __construct( public iterable $users, ) {} } грубо говоря
Ну сериалайзер плоховато с массивами работает, если нужна такая структура то тут классов не хватает
Павел
Какая то недотипизация в примере
Kirill
Какая то недотипизация в примере
хз, обычная типизация пыховская
Павел
хз, обычная типизация пыховская
Ну какие то вложенные массивы, а внутри класс охото
Kirill
ну вот так надо если?
Kirill
короче, сериалайзер на помойку, забей)
Kirill
он только с флат-объектами справляется
Kirill
да и то, через одно место
Павел
ну вот так надо если?
А почему "надо" ? Почему у нас listDto потом массиов в котором dto
Kirill
да и то, через одно место
это я про типизацию
Павел
Просто если уж есть класс DTO то внем нормальные дтошки вложенные будут
Kirill
я тебе спецом усложнил пример, чтоб осознать)