Как и любой другой инструмент, пхп надо уметь готовить. Мне жаль людей, которым пришлось работать со старющими версиями и древними страшными проектами, но где этого нет? Кого мне не жаль так это тех, кто безвозвратно презирает активно развивающийся инструмент, который оброс тонной тулинга. И всякие ваши асинки через ампхп и реактпхп тоже доступны
не совсем понял; "в ларке нет инструментов из коробки" и "решается через form request" как будто друг другу противоречат
и да, я говорил как раз про form request, в котором для любого поля запроса можно указать желаемый тип и плеваться ошибками валидации при несоответствии; из этого потом влегкую делаются дто через встроенные методы типа integer() или boolean(), потому что ты уже можешь быть уверен, что у тебя все данные верного типа; ну или по крайней мере каст сделается за тебя
В условной симфе в экшен контроллера можно заинжектить уже готовую дтошку, собранную из пришедшего запроса. Так же и в ларке
В остальных фреймах да, возможно придется создавать дтошку самому, но при этом после валидации ты точно можешь быть уверен, что все пришедшие данные верного типа. Это делается один раз в экшене, зачем делать для этого отдельные функции, тем более отдельную библиотеку и тем более зачем тащить такую библиотеку в проект - я не понимаю
Расмус не глуп, это очевидно, он реализовал аспекты ооп, просто он не мог учесть, что мир сдвинется в сторону от догматичного ооп к смешению парадигм. Собственно, к этому и пришли, когда ввели final readonly классы
Личные стандарты разработки это вполне себе повод делать геттеры, ничего против не имею, просто хотел выслушать мнение, спасибо)
честно говоря, не могу представить каким образом нарушается хотя бы один пункт из того что вы перечислили, кроме разве что внутренних стандартов разработки в компании
дто по определению выполняет одну функцию - трансфер данных; использование геттеров или прямого доступа на это не влияет
в дто обычно нет методов для работы с данными, поэтому инкапсуляции здесь в принципе не может быть - это по сути просто структура, если говорить процедурным языком; геттерами вы получается намеренно навязываете инкапсуляцию структуре
про безопасность тоже не совсем понял - public readonly поля чем-то менее безопасны, чем геттеры?
про нарушение открытости/закрытости хотел бы попросить пример конкретный пожалуй
это все только при условии, что вам вообще хочется дальше на эту тему дискутировать :D
Что за маразм говорить про зарплату до налогов
Так хоть миллион может быть, только что толку, если после налогов 10к остается
То ли дело джава, да?)
вы как будто первый раз про лару слышите, ей богу)
если честно, вообще не убедили, я все так же уверен, что вы просто не поняли контракт и юзкейсов
Замените магические числа на константы вида Response::NO_CONTENT и все сразу станет предельно ясно
Я так и не понял в чем претензия
Где можно - значение трактуется как хттп-код, где нельзя - как тело с кодом 200
В чем тут нелогичность-то?
Тут в ваших руках управлять этими шорткатами и если вы толкаете в значения херню, то и на выходе получаете херню, все очень просто
Ну так все логично же вроде
Как и любой другой инструмент, пхп надо уметь готовить. Мне жаль людей, которым пришлось работать со старющими версиями и древними страшными проектами, но где этого нет? Кого мне не жаль так это тех, кто безвозвратно презирает активно развивающийся инструмент, который оброс тонной тулинга. И всякие ваши асинки через ампхп и реактпхп тоже доступны
Intermediate representation
почему же с шансом? в ларке конкретные валидаторы на типы переменных есть
да, прямого аналого маппинга как в симфе, но есть достаточно похожий инструмент, позволяющий достичь тех же результатов
Снимаю шляпу перед людьми, которые настолько глубоко разбираются в своей работе, глаз радуется
не совсем понял; "в ларке нет инструментов из коробки" и "решается через form request" как будто друг другу противоречат
и да, я говорил как раз про form request, в котором для любого поля запроса можно указать желаемый тип и плеваться ошибками валидации при несоответствии; из этого потом влегкую делаются дто через встроенные методы типа integer() или boolean(), потому что ты уже можешь быть уверен, что у тебя все данные верного типа; ну или по крайней мере каст сделается за тебя
Source: trust me bro
Рад за вас, что в текущей ситуации в мире вы можете себе накопить на любые хотелки. Увы, не все так хорошо живут)
В условной симфе в экшен контроллера можно заинжектить уже готовую дтошку, собранную из пришедшего запроса. Так же и в ларке
В остальных фреймах да, возможно придется создавать дтошку самому, но при этом после валидации ты точно можешь быть уверен, что все пришедшие данные верного типа. Это делается один раз в экшене, зачем делать для этого отдельные функции, тем более отдельную библиотеку и тем более зачем тащить такую библиотеку в проект - я не понимаю
Опять вротпрессеры придумали себе проблем и их решают
Вся эта ересь решается использованием дто со строго типизированными полями, а не всяких всратых array $userData
Блин, только думал написать «не использоватьь питон»)))
Минус не мой🤔
Расмус не глуп, это очевидно, он реализовал аспекты ооп, просто он не мог учесть, что мир сдвинется в сторону от догматичного ооп к смешению парадигм. Собственно, к этому и пришли, когда ввели final readonly классы
Личные стандарты разработки это вполне себе повод делать геттеры, ничего против не имею, просто хотел выслушать мнение, спасибо)
честно говоря, не могу представить каким образом нарушается хотя бы один пункт из того что вы перечислили, кроме разве что внутренних стандартов разработки в компании
дто по определению выполняет одну функцию - трансфер данных; использование геттеров или прямого доступа на это не влияет
в дто обычно нет методов для работы с данными, поэтому инкапсуляции здесь в принципе не может быть - это по сути просто структура, если говорить процедурным языком; геттерами вы получается намеренно навязываете инкапсуляцию структуре
про безопасность тоже не совсем понял - public readonly поля чем-то менее безопасны, чем геттеры?
про нарушение открытости/закрытости хотел бы попросить пример конкретный пожалуй
это все только при условии, что вам вообще хочется дальше на эту тему дискутировать :D
Спасибо за статью, действительно полезный функционал
Вопрос будет не по теме: в чем смысл делать ридонли дто с приватными полями и геттерами? Коли он уже ридонли, так ведь проще сделать поля публичными?
Ответ: никак
Бестолковая практика)