
Sergey
15.11.2017
18:49:11
на вот
возьми это упражнение
придумай себе маленькую задачку (описать объектами например заказ и что с ним могут делать)
и попробуй соблюсти все эти ограничения

Google

Sergey
15.11.2017
18:50:05
они тут жесткие сильно, специально что бы ты вопросы начал нужные задавать

Антон
15.11.2017
18:50:50
Да вот последние пункты уже )
С первыми уже все понятно. И на тысячи строк кода может 1 else
От зенда был такой доклад как код делать читаемым. Все найти не могу

Sergey
15.11.2017
18:55:59

smile
15.11.2017
18:58:21

Sergey
15.11.2017
18:59:57

smile
15.11.2017
19:00:41
2. репозиторий. Т.е. по факту можно попробовать просто найти чувака с таким мылом

Sergey
15.11.2017
19:01:57

smile
15.11.2017
19:07:46
да, такого метода пока нет. Но если честно не до конца улавливаю сейчас связь add при попытке изменить мыло и именно в таком формате add(User $user)

Sergey
15.11.2017
19:08:05
ну и в целом для UI придется проверять

smile
15.11.2017
19:08:21
но допустим я создаю пользователя, а не изменяю

Google

smile
15.11.2017
19:08:28
и мыло у меня уникальным должно быть и оно обязательно
тогда мне захочется делать чтото по типу new User($email) и в add я уже пробрасываю этого User'a

Sergey
15.11.2017
19:08:59

smile
15.11.2017
19:09:03
получается ты предлагаешь внутри addUser чекать его мыло на уникальность?

Vyacheslav
15.11.2017
19:13:13
@sergey_smile можешь делать валидации таким образом:
1. Делаешь интерфейс аля ValidateableDatabasedly.
2. Екстендишь ентити от этого интерфейса и делаешь метод isValid()
3. В этом методе возвращаешь массив с ошибками.
4. На preFlush ставишь листенер который слушает или тебе пришла ентитя которая инстанс оф интерфейса.
5. Там вызываешь isValid() и если не пусто - throw Exception или что там тебе нужно.
6. Потом кетчишь этот ексепшн и даёшь пользователю сообщение в гуи

Dmitriy
15.11.2017
19:21:30
в жопу префлуши ваши

smile
15.11.2017
19:22:00


Vyacheslav
15.11.2017
19:24:03

Bohdan
15.11.2017
19:27:35
мнение Ocramius'а - агрумент?

Vyacheslav
15.11.2017
19:27:54


Bohdan
15.11.2017
19:28:41

Vyacheslav
15.11.2017
19:31:45

Bohdan
15.11.2017
19:32:48
3 пункт списка

smile
15.11.2017
19:35:26


Vyacheslav
15.11.2017
19:35:31


Bohdan
15.11.2017
19:39:08
имхо - нарушение SRP
плюс там есть ссылка на саму презентацию в начале сообщения, там чуть больше рассказано
это ведь ещё и смесь слоя приложения и слоя логики

smile
15.11.2017
19:39:39

Vyacheslav
15.11.2017
19:42:14

Google

Andrey
15.11.2017
19:44:04
вы не защитите код от кодера
а что если другой разраб выпилит нах ваш ивент листенер?

Артур Евгеньевич
15.11.2017
19:45:18
парни заюзал symfony DI в своем проекте, и такой вопрос тепреь как мне в шторме автодополнение в yaml сделать без symfony плагина?

Vyacheslav
15.11.2017
19:46:09
Хотя и тест сможет удалить)

Andrey
15.11.2017
19:46:27
вот именно
поэтому спасет только надавать по щщам на ревью

Vyacheslav
15.11.2017
19:47:00
Ну я бы не делал сервис отдельный, а делал универсально через листенер

Andrey
15.11.2017
19:47:24
есть проблема со всеми листнерами ивентов доктрины
в них придется выносить логику

Bohdan
15.11.2017
19:47:42
http://ocramius.github.io/doctrine-best-practices/#/58 начиная отсюда

Andrey
15.11.2017
19:47:48
иначе очень быстро наткнетесь на циклические зависимости

Bohdan
15.11.2017
19:47:49
Lifecycle Callbacks are supposed to be the ORM-specific serialize and unserialize

Andrey
15.11.2017
19:48:59
есть сервис, он юзает орм, есть листнер доктрины, он юзает сервис, в итоге чтоб инициализировалась доктрина, становится нужен этот сервис, которому нужна доктрина
так что лучше там чето прям совсем изичное сделать, либо вынести просто логику операции этой в сервис и делать это там
и свои ивенты диспатчить
ес надо

Bohdan
15.11.2017
19:50:02
черт, хотел найти кусок, где он об этом в видео говорит, но он эти слайды просто скипнул

Andrey
15.11.2017
19:50:22
предусмотрительно))

Google

Sergey
15.11.2017
20:17:06

Bohdan
15.11.2017
20:19:19
@fes0r мой довод насчет srp относительно ивент листенеров хоть в тему?)
а то мало ли, вдруг я что-то не так понимаю

Andrey
15.11.2017
20:22:00

Sergey
15.11.2017
20:22:35

Andrey
15.11.2017
20:23:21
есть проблема со всеми листнерами ивентов доктрины
так что лучше там чето прям совсем изичное сделать, либо вынести просто логику операции этой в сервис и делать это там
и свои ивенты диспатчить
ес надо
вобщем впечатления плохие))

Admin
ERROR: S client not available

finkel
15.11.2017
21:43:06
disabled = data->getId() ? true : false
ой, некропостинг какой-то

Andrey
15.11.2017
22:17:55
И это ну совсем ни к чему хорошему не приводит

Stas
16.11.2017
08:28:10
жуть какая
перечитайте контекст проблемы. при определении формы, как сервис, у Вас нет доступа к билдеру, емнип

Bohdan
16.11.2017
08:31:50
почему для подключаемых бандлов рекомендуют использовать xml для конфига?
а для своих - yaml

Sergey
16.11.2017
08:34:47
расширяемость лучше

Google

Bohdan
16.11.2017
08:35:45
в каком конкретно юзкейсе xml будет более расширяемым, нежели yaml?

Sergey
16.11.2017
08:38:06
http://fabien.potencier.org/symfony-service-container-using-xml-or-yaml-to-describe-services.html

$iD
16.11.2017
08:39:00
слышал только Аннотации для своих
:)

Sergey
16.11.2017
08:39:35
да и вообще да, аннотации для своих проектов

Herman
16.11.2017
08:39:44
Аннотации для своих банднов это про доктрину

Sergey
16.11.2017
08:40:02
еще есть роутинги, валидации и целая тележка аннотаций
так что не только

Herman
16.11.2017
08:40:04
А человек видимо про сервисы спросил

Bohdan
16.11.2017
08:40:31
в бест практисах не нашел, но я имею ввиду конкретно конфиги сервисов

$iD
16.11.2017
08:40:35

Bohdan
16.11.2017
08:40:59
роутинг - имхо дело вкуса

Herman
16.11.2017
08:41:09
Ну вот конкретно про "аннотации в своих бандлах, xml в библиотеках" говорил окрамиус про доктрину

Bohdan
16.11.2017
08:46:16
http://fabien.potencier.org/symfony-service-container-using-xml-or-yaml-to-describe-services.html
это все же трошки устаревшая инфа
насчет автокомплита - симфони плагин во многих случаях вытягивает все, что нужно
валидация - ну, в ide не подсвечивается, но при проверке ошибка сразу выскочит
скорость работы - в любом случае влияет только на скорость сборки контейнера
внешние зависимости - в принципе, действительно аргумент, но я слабо верю в то, что у кого-то в достаточно большом приложении с множеством разных бандлов какой-то из них не потянет за собой парсер yaml

Sergey
16.11.2017
08:46:48
не все юзают пхп шторм и уж тем более плагин симфони

$iD
16.11.2017
08:46:57
+

Sergey
16.11.2017
08:47:04
валидация ide и валидация xml это немного разные вещи

$iD
16.11.2017
08:47:07
были у нас Саблаймолюбители
боль

Sergey
16.11.2017
08:47:30
а xml пхп разбирает быстрее чем yaml, как минимум потому что юзает сишные биндинги для этого
можно в слаке спросить у чуваков, они скажут точно или ткнут носом где это написано