@symfony_php

Страница 243 из 1418
Sergey
28.06.2017
07:06:24
в формах вроде как рекомендуют в data_class ложить не сущность, а dto, либо же в симфе есть трансформер из формы в сущность и обратно

Dinar
28.06.2017
07:14:46
А чем сущность отличается от ДТО?

Sergey
28.06.2017
07:17:13
А это разве не Controller as a service?
он самый, только продвинутая версия. изначально было когда регаешь контроллер как сервис, то прощаешься со всеми плюшками типа $this->render, а теперь сделали более хитрый способ

Google
Sergey
28.06.2017
07:17:51
https://stovepipe.systems/post/avoiding-entities-in-forms по поводу форм и сущностей

Dinar
28.06.2017
07:19:53
Но вообще там комменты весьма разные :)

Но я так понял, этот способ не отменяет стандартный метод.

Sergey
28.06.2017
07:51:02
стандартный метод уже немного устарел

https://github.com/symfony/symfony-standard/blob/3.3/src/AppBundle/Controller/DefaultController.php тут уже AbstractController идет к примеру

https://github.com/symfony/symfony-standard/blob/3.3/app/config/services.yml#L27 и вот регают контроллеры

Dinar
28.06.2017
07:53:02
ну мне кажется и у того и другого способа есть и плюсы и минусы.

Sergey
28.06.2017
07:58:49
у привычного способа слишком много минусов

Ivan
28.06.2017
08:01:31
я на каждый интеграционный тест, использующий БД, гружу фикстурки. Сейчас подумал, а можно ли запускать тест в транзакции и откатывать её после теста? это нормально?

Sergey
28.06.2017
08:02:00
да, на эту тему докладов и статей много было

Dinar
28.06.2017
08:27:57
Многие так делают.

Jan
28.06.2017
08:29:36
@Enleur спасибо, как раз хотел найти эту статью) пора в закладки положить.

Google
Jan
28.06.2017
08:30:08
@Gaaarfild DTO — это просто структура данных. Без логики.

Dinar
28.06.2017
08:30:25
Как и сущность должна быть такой же

В правильной сущности не должно быть логики

Единственное, чем она может отличаться - аннотациями для доктрины. Но без доктрины аннотации - просто комментарии.

И это просто ДТО.

Dinar
28.06.2017
08:31:59
Я не прав? :)

Dinar
28.06.2017
08:35:08
Ну максимум логика может бысть связана только со своими данными.

И тогда это наверно уже не сущность а модель.

Простейшам логика типа isActive там или еще че нить.

Sergey
28.06.2017
08:45:40
логика должна быть, но логика поведения самого объекта

Dinar
28.06.2017
09:16:18
Понятно. А где можно прочитать про это?

Sergey
28.06.2017
09:19:45
Понятно. А где можно прочитать про это?
https://martinfowler.com/bliki/AnemicDomainModel.html

https://github.com/symfony/symfony/pull/23315 неужели

Oleksandr
28.06.2017
10:30:23
Pavel
28.06.2017
10:32:03
с регистрацией контроллеров в контейнере
Ты имеешь ввиду AppBundle\Controller\: resource: '%kernel.project_dir%/src/Controller' public: true tags: ['controller.service_arguments'] ??

Andrew
28.06.2017
10:32:43
а еще есть codeception :)
есть, но если у тебя тесты в behat/codeception гоняются через вебсервер, то ролбэк сделать не получится.

если использовать kernel driver, то можно переиспользовать StaticDriver, который в этом бандле есть

Google
Oleksandr
28.06.2017
10:34:51
так через кодсепшн можно ж и юнит писать

Andrew
28.06.2017
10:36:08
так через кодсепшн можно ж и юнит писать
можно, но для юнит-тестов и роллбеки не нужны

как и бд

Pavel
28.06.2017
11:27:46
Всем привет, проблема с JMSSerializer. Пытаюсь сериализовать массив обьектов Group. У обьекта Group есть свойство типа Course. Файл Entity.Group.yml примерно такой: AppBundle\Entity\Group: exclusion_policy: ALL properties: id: expose: true groups: [default] description: expose: true groups: [default] course: type: AppBundle\Entity\Course expose: true groups: [default] Есть также файлик Entity.Cource.yml, там expose для примитывных типов. На выходе чтото топо того (поле course сериализовалось как пустой объект): [{ "id": 1, "description": "test", "course": {} },...] Кто-то сталкивался с подобным? UPD: Отдельно объект Cource нормально сериализует.

Dinar
28.06.2017
12:01:06
А есть ли тут немного фронтедные опытные чуваки? :)

Подскажите, почему Бабель косячит. Если в функции где-то аргументом встречается null, то он дальше этот файл не обрабатывает, а подключает следующий. Из-за этого естественно ошибка на странице. Код транспайленный выглядит вот так swal(Translator.trans('package_modal_error'), "use strict"; Хотя должен был вот так swal(Translator.trans('package_modal_error'), null, 'error'); use strict это уже начало другого файла Если заменяю null на пустую строку, то нормально идет.

Aleh
28.06.2017
14:34:09
эм

вряд ли это бабель виноват

Dinar
28.06.2017
14:42:34
нашел проблему.

Это генерация соурс мапа из вывода бабеля, но до аглифая.

Dinar
28.06.2017
14:42:57
Сейчас сделал ее до бабеля, и заработало

Как лучше всего тестировать логику, которая стучится в АПИ и данные оттуда достаёт и записывает в БД. А другой роут отображает в нужном формате.

Daniel
28.06.2017
16:54:10
А почему не делать через моки вызовы в апи и эмулировать тот или иной ответ, проверяя поведение приложения на любой вариант этого ответа?

Dinar
28.06.2017
16:55:17
Ну вот как их тестировать?

Sergey
28.06.2017
16:55:19
та что собирает инфу там апиха мокается и отдаешь статические ответы, сверяя только то что собираешься писать в базу. можно прям интеграционными покрывать сразу, если вариаций ответов не много

Dinar
28.06.2017
16:55:42
Чтобы он при этом и сломался, если апи поменяется. Каждый раз дергать?

Sergey
28.06.2017
16:56:01
ну ты тестируешь не их апи же, а свой код

Google
Sergey
28.06.2017
16:56:14
если тебе нужно детектить то что у них апи сломалось это уже отдельная тема

Dinar
28.06.2017
16:56:31
Но мой код должен мне подсказать же, если он больше не может с их апихой работать?

Это же мне фиксить придётся.

Daniel
28.06.2017
16:56:57
Вроде как нет как раз, это херовая апиха, если обратная совместимость ломается

Дожен быть префикс версии на крайний случай тама

Dinar
28.06.2017
16:57:08
Ну по сути - да.

Ну а если она херовая? :)))

Вот мучаюсь выбором. :)

Admin
ERROR: S client not available

Dinar
28.06.2017
16:57:44
И ещё если обращения к апихе дорогие.

То есть часто делать - не айс.

Daniel
28.06.2017
16:59:04
А какой смысл в тесте это делать? Тесты допустим срабатывают на сборке билда, чтобы на прод не выгрузилось говно Если апи отваливается и тест проверяет её наживую, конечно он тебе скажет, что все херово, но как тебя это спасет? Сломалось чужое апи - сломался и продакшн билд

Dinar
28.06.2017
16:59:10
Может кешировать в моки?

Тоже верно.

Но прод может продолжать работать, так как сломался только пишущая логика.

В общем, я в целом понял.

Спасибо. :)

Daniel
28.06.2017
17:08:20
А вот кстати SOA, я не знаю всех минусов и сложностей Но недавно смотрел опыт работы с ним в hh Дошел до хорошего плюса - отказоустойчивость, т.е. например фронт стучит куда-то и если тот или иной сервис не отвечает, не весь сайт ломается, а только лишь раздел

Как бы офигенный плюс, пускай и дорогой в итоге

Потом очень просто отдать тот или иной функционал на аутсорсинг

Google
Daniel
28.06.2017
17:11:54
SOA как панацея ненене, но все равно интересная же тема достаточно

Sergey
28.06.2017
17:24:41
даже без соа как часто у тебя ломается весь сайт из-за ошибки в каком-то из модулей?

Sergey
28.06.2017
17:58:54
подскажите плиз, используете ли наследование в доктрине? у меня есть скидки разных типов, нормально ли будет на уровне доктрины их по типу разделить или нет?

Sergey
28.06.2017
18:40:52
да

Ruslan
28.06.2017
19:14:00
Сергей, используем. Проблем нет, по крайней мере с Single Table.

К недостаткам можно отнести то, что структура таблицы становится менее очевидной.

Daniel
28.06.2017
19:15:45
А насколько это важно кстати?

Ruslan
28.06.2017
19:20:56
Зависит от обстоятельств, но в моей практике два-три nullable поля допускаю

Если таких полей больше или есть кто-то, кто работает с базой напрямую, в обход ORM, то может вызвать проблемы.

Daniel
28.06.2017
19:26:49
Кто-то еще напрямую с базой работает?!

Ну это херовый подход был бы

Ruslan
28.06.2017
19:54:00
Работают некоторые. В devzen ведущий рассказывал, что ему мешаются все эти ORM, проще и быстрее сразу SQL написать.

Перечитал, не совсем ясно выразился: можно и в рамках ORM на грабли наступить с неправильной схемой, если конструировать там сложные запросы, выходя за рамки стандартного persist/findBy/flush. И чем больше полей и чем менее очевидна схема, тем проще это сделать.

Daniel
28.06.2017
20:07:16
Кстати, RSM не будет разруливать DiscriminatorMap?

Dinar
29.06.2017
07:30:14
А вот кстати SOA, я не знаю всех минусов и сложностей Но недавно смотрел опыт работы с ним в hh Дошел до хорошего плюса - отказоустойчивость, т.е. например фронт стучит куда-то и если тот или иной сервис не отвечает, не весь сайт ломается, а только лишь раздел
Это только в том случае, если у тебя бэк не монолитный. В противном случае, разницы нет в надежности. Так же могут просто сломаться определенные роуты. И будет работать пол сайта.

Ну и да, огромный плюс, что очень четко могут раздельно работать фронт и бэк разрабы, не мешая и почти не тормозя друг друга :)

Sergey
29.06.2017
08:18:26
А вот кстати SOA, я не знаю всех минусов и сложностей Но недавно смотрел опыт работы с ним в hh Дошел до хорошего плюса - отказоустойчивость, т.е. например фронт стучит куда-то и если тот или иной сервис не отвечает, не весь сайт ломается, а только лишь раздел
это не плюс а минус SOA - твоя система должна быть отказоустойчивой. Как бы напомню - ты на PHP пишешь, потому у тебя не будет так что если вываливается эксепшен в одной части системы то ложится все.

Ну и да, огромный плюс, что очень четко могут раздельно работать фронт и бэк разрабы, не мешая и почти не тормозя друг друга :)
опять же это не относится к SOA. Ты можешь пилить монолитные приложения как апихи и делать просто мидлвари или SPA

Daniel
29.06.2017
08:19:18
А плюсы есть?

Страница 243 из 1418