Thawne
все, разобрался, я просто глупый, спасибо все равно😃
Thawne
Извиняюсь еще раз, другой вопрос, могу ли я отправлять какой-то параметр в АПИ, и там добавить условие, и если условно оно верно то отправлять related поля?
Thawne
В serializer
Thawne
и само related поле в сущности
Arnur
Всем привет! Можно ли в EasyAdmin 3 при Action Create отрендерить template со своими данными? И можно ли сконфигурировать поля с динамическими параметрами в QueryBuilder? К чему это ? AssociationField даёт все записи, а хотелось бы, сначало выбрать один параметр (Attr A), а потом в другом поле у меня выйдет выборка (массив Attr B) на основе параметра выше (Attr A)
Shokha
Итоге вот так разделил
Юра
Точнее в твоем случае я так понимаю добавить в контекст группу надо если какой-то параметр пришел
Thawne
Serializer контекст?
Юра
Да
Юра
Там все методы принимают контекст
Thawne
Там все методы принимают контекст
Да? Не знал, я видел этот контекст, но подумал это не то что мне нужно
Юра
Параметр по-моему так и называется groups
Thawne
Буду разбираться🥲
Thawne
Параметр по-моему так и называется groups
Ага, ещё в yml файлике определяется вроде
Юра
В ямл файде ты определяешь каким группам поле принадлежит
Юра
А какие группы используется при сериализации в контексте передается
Юра
Либо ты еще можешь передать в контекст массив пропертей которые игнорировать
Юра
И убирать от туда рилейтет поле если параметр пришел
Thawne
И убирать от туда рилейтет поле если параметр пришел
Короче я так понял что контекст решение
Юра
Да
artem
Symfony 5 twig||api? Для тестового
Иван
вот это программирование на сериализаторах сомнительно выглядит
Юра
А да надо переписать все приложение на дто
Юра
Забыл этот вариант
Nikolay
Подскажите по тестам. Есть создание объекта даты внутри метода сущности, нужно подменить его в тестах. Вариант с тем, чтобы прокидывать дату через параметр сейчас не подходит. На какие варианты еще можно посмотреть?
Павел
Ну либо через какой нить статик объект создавать дату, и чтобы можно было эту инициализацию подменять
Nikolay
Вариант обычная функция, которая эту дату создает, а функцию переопределить в тесте
У меня был вариант отнаследоваться от DateTime и там переопределить для тестов
Сергей
у карбона есть setTestNow() вариант с методом замоканным - тоже вариант
Nikolay
Приветствую
artem
https://stackoverflow.com/questions/7952611/mocking-the-time-used-by-all-instances-of-datetime-for-testing-purposes
artem
2 минуты гугла
artem
Я так понимаю что просто в методе теста подкинуть мок
Павел
Я так понимаю что просто в методе теста подкинуть мок
Хороший юнит - юнит без мока и зависимостей, или минимум
artem
Хороший юнит - юнит без мока и зависимостей, или минимум
Я как человек который работал в банке скажу что лучше мокать)) один "программист" тестил оплату по одной копейке😂
Павел
Я как человек который работал в банке скажу что лучше мокать)) один "программист" тестил оплату по одной копейке😂
Имеется ввиду, что лучше делать такие сервисы которые не требуется мокать в принципе
Павел
И уже их покрывать юнитами
Dmitry
В тз - прокидывать параметром не подходит
Тогда костыли вместо параметра
artem
Тут просто тс не совсем понятно объяснил зачем ему подменять объект
Павел
Тут просто тс не совсем понятно объяснил зачем ему подменять объект
Я видать тоже не совсем понял изначально о чем вы, сорян)
Денис
Если писать сервисы без зависимостей мы получим процедурное программирование, нет разве?
artem
Если писать сервисы без зависимостей мы получим процедурное программирование, нет разве?
Та не. Dic как раз решает проблему) прикольно что мы от контейнера зависим)
Павел
Если писать сервисы без зависимостей мы получим процедурное программирование, нет разве?
Нет, просто можно разделить одну большую лапшу где и завимсости и логика, на несколько классов - один с завимсостями, а другие с логикой.
Павел
И получается класс с зависимостями почти не надо тестить, так как там не логики. А классы где логики тестятся проще, так как не надо делать моки или минимум
Павел
Ну у тс как раз был видимо не тревиальный вариант. Ему моки скинул, пускай юзает)
Да я изначально не понял, не увидел к какому контексту вы ответили) у него проблема - неоткуда мокать
Павел
Там просто New datetime()и надо это заменить без смены контракта самого метода
artem
Хотя там вроде в энтити это было. Можно вынести
Nikolay
Хотя там вроде в энтити это было. Можно вынести
Через симфони можно подменить только функции дат, объекты только через библиотеку или костыли писать
Денис
Ну, кстати, если дата в свойство сущности пишется, можно тупо рефлексией подменить же
Денис
Это уже как перебор выглядит
Ну для тестов, в целом, приемлемый костыль
Денис
Как по мне
Nikolay
Ну для тестов, в целом, приемлемый костыль
Там можно было бы через аргумент метода передать, но пришлось бы контракт менять во всех вызовах
Денис
Там можно было бы через аргумент метода передать, но пришлось бы контракт менять во всех вызовах
Вот это как раз уже перебор, менять логику приложения ради тестов
artem
Там можно было бы через аргумент метода передать, но пришлось бы контракт менять во всех вызовах
Раз уж началась такая пьянка, то жду инфу о контрактном проектировании))
artem
Вот это как раз уже перебор, менять логику приложения ради тестов
А тут веселее) на самом деле сложнее менять тесты из-за реализации)))
Павел
Это уже как перебор выглядит
Соглашусь, что для тестов норм и это лучше чем менять код ради тестов.
artem
А что за прикол пошел что теперь появились вакансии php + go? Это замена php + node?
Dmitry
А что за прикол пошел что теперь появились вакансии php + go? Это замена php + node?
Для перевода имеющихся PHP-проектов на Go-микросервисы
Kirill
А смысл?
Я вот наблюдаю печальную тенденцию уменьшения популярности PHP и отдачу предпочтения другим ЯП, в основном Python, Go и иногда NodeJS.
Nikolay
Я вот наблюдаю печальную тенденцию уменьшения популярности PHP и отдачу предпочтения другим ЯП, в основном Python, Go и иногда NodeJS.
Ну тут от задач зависит. На том же go сложную бизнес-логику держать неудобно, php для этого больше подходит. Python для бэкенда использовать можно только, если кто-то заставит. NodeJs нужен только для асинхронности
Nikolay
Почему пайтон можно использовать только, если заставят, а ноду только для асинхронности?)
Питон проигрывает пхп в этой сфере, во-первых он медленнее, во-вторых кол-во фреймворков ограничено и они не очень (мое субъективное мнение), джанго это как ларавел, только еще хуже. А для чего еще нода нужна?
Kirill
Ну скорость работы ЯП в большинстве случаев не важна, все равно узким горлышком будет скорее всего БД. А если важна, то тут и PHP не самый быстрый. Фреймворков, насколько я знаю, у пайтона больше, чем у PHP. Насчет пайтона говорить не буду, я с ним плохо знаком, а вот у ноды есть TypeScript и меня, например, он очень привлекает. Очень богатый синтаксис: дженерики, структуры и тд.
Nikolay
Те же стат анализаторы в пхп умеют больше чем typescript
Ярослав
"-Ненавижу кошек!!!" "-Ты просто не умеешь их готовить"
Павел
А смысл?
Пых в целом небыстрый, а уж тем более перед компилируемым языком. Ресурсы = деньги.
Dmitry
А смысл?
Упёрлись в производительность. В этом рулят долгоживущие процессы с асинхронностью и постоянными соединениями. JS недолюбливают, Java/C# монструозные, PHP переводить на асинхронность сложно. Так что берут легковесный компилируемый Go.