Size: a a a

2021 April 01

S)

Shokha )) in symfony
извините если вопрос тупой
источник

S)

Shokha )) in symfony
источник

👤U

👤 User in symfony
Эт не сокеты. Эт ивент сорсинг.
источник

👤U

👤 User in symfony
В сокетах можно самому что-то крикнуть. А тут сиди слушай.
источник

S)

Shokha )) in symfony
👤 User
Эт не сокеты. Эт ивент сорсинг.
да понял шас читаю спасибо 😊
источник

AN

Alexander N in symfony
Sergey
похоже, что только пересборкой php с флагом --enable-sigchild можно пофиксить.

но вот в чем вопрос, если не пересобирать пыху, этот +1 в пиде это же просто закономерность? существует вероятность, что какой-то другой процесс вклинится и получит этот +1?
Есть вероятность такая кстати
источник

ПГ

Павел Г. in symfony
👤 User
Эт не сокеты. Эт ивент сорсинг.
Все же наверное SSE а не ES
источник

👤U

👤 User in symfony
Спецификация Server-Sent Events описывает встроенный класс EventSource
источник

👤U

👤 User in symfony
Я про EventSource говорил.
источник

CB

Chiki Briki in symfony
Возвращаясь к вчерашнему вопросу про валидацию. Вот вам кейс:
Нам в службу приходит валидное DTO, мы собираемся создать какую-то сущность. Сущность в коструктор требует VO.
Для создание VO нам требуется выполнить ряд операций:
- бесплатные по времени: строка должна быть email, либо сравнение с какими-либо константами и т.д.
- Малозатратная по ресурсам: какой-нибудь запрос в базу, например на уникальность email
- Сильно затратная по ресурсам: VO в конструкторе требует данные из какого-то АПИ

Итого у нас есть сущность, у насть есть DTO с данными (контракт данных соблюден), у нас есть n VO из которых мы хотим собрать нашу сущность, но так же мы не хотим при этом затрачивать много времени/ресурсов.

Как сделать так, чтобы сначала были провалидированы бесплатные правила, потом малозатратные, потом сильно затратные
Уместно ли делать в таком случае сложный билдер, который будет полностью контролировать процесс создания сущности?
Например вначале инвокать все бесплатные проверки, затем малозатратные проверки, затем сильно затратные, затем собирать VO и совать их  в сущность?

При этом подходе (с приоритизацией) появляются проблемы т.к. VO больше не отвечает за свою валидность в момент создания.
Например:
1. валидируем уникальность email до создания VO (потому что не хотим вызывать АПИ если email не уникален, при этом данные из АПИ нужны при создании VO)
2. в стат конструкторе VO мы все равно должны проверить email на уникальность, т.к. конструктор могут инвокнуть откуда угодно

^ Это тоже можно решить за счет создания определенных приватных полей-флагов в рамках самой VO. Мол если валидация такого-то поля была инвокнута уже, то повторно валидировать его не надо, либо хранить как-то в кеше

Ваши мыли по этому поводу @dexplon @fes0r
источник

VM

Volodymyr Melko in symfony
Chiki Briki
Возвращаясь к вчерашнему вопросу про валидацию. Вот вам кейс:
Нам в службу приходит валидное DTO, мы собираемся создать какую-то сущность. Сущность в коструктор требует VO.
Для создание VO нам требуется выполнить ряд операций:
- бесплатные по времени: строка должна быть email, либо сравнение с какими-либо константами и т.д.
- Малозатратная по ресурсам: какой-нибудь запрос в базу, например на уникальность email
- Сильно затратная по ресурсам: VO в конструкторе требует данные из какого-то АПИ

Итого у нас есть сущность, у насть есть DTO с данными (контракт данных соблюден), у нас есть n VO из которых мы хотим собрать нашу сущность, но так же мы не хотим при этом затрачивать много времени/ресурсов.

Как сделать так, чтобы сначала были провалидированы бесплатные правила, потом малозатратные, потом сильно затратные
Уместно ли делать в таком случае сложный билдер, который будет полностью контролировать процесс создания сущности?
Например вначале инвокать все бесплатные проверки, затем малозатратные проверки, затем сильно затратные, затем собирать VO и совать их  в сущность?

При этом подходе (с приоритизацией) появляются проблемы т.к. VO больше не отвечает за свою валидность в момент создания.
Например:
1. валидируем уникальность email до создания VO (потому что не хотим вызывать АПИ если email не уникален, при этом данные из АПИ нужны при создании VO)
2. в стат конструкторе VO мы все равно должны проверить email на уникальность, т.к. конструктор могут инвокнуть откуда угодно

^ Это тоже можно решить за счет создания определенных приватных полей-флагов в рамках самой VO. Мол если валидация такого-то поля была инвокнута уже, то повторно валидировать его не надо, либо хранить как-то в кеше

Ваши мыли по этому поводу @dexplon @fes0r
создавай ВО в том порядке, в каком хочешь валидировать =)
источник

CB

Chiki Briki in symfony
Volodymyr Melko
создавай ВО в том порядке, в каком хочешь валидировать =)
в VO есть конструктор, конструктор требует в себя данные в т.ч. данные из АПИ.
Мы не хотим запрашивать данные из АПИ, если провалится валидация уникальности email
И мы не хотим искать email в базе до того, как не убедимся, что это действительно email
источник

VM

Volodymyr Melko in symfony
$email = new Email($emailString);
$this->checkIsUnique($email);

$apiDependantVO = new ApiDependantVO($this->getDataFromApi());
источник

ПГ

Павел Г. in symfony
Chiki Briki
Возвращаясь к вчерашнему вопросу про валидацию. Вот вам кейс:
Нам в службу приходит валидное DTO, мы собираемся создать какую-то сущность. Сущность в коструктор требует VO.
Для создание VO нам требуется выполнить ряд операций:
- бесплатные по времени: строка должна быть email, либо сравнение с какими-либо константами и т.д.
- Малозатратная по ресурсам: какой-нибудь запрос в базу, например на уникальность email
- Сильно затратная по ресурсам: VO в конструкторе требует данные из какого-то АПИ

Итого у нас есть сущность, у насть есть DTO с данными (контракт данных соблюден), у нас есть n VO из которых мы хотим собрать нашу сущность, но так же мы не хотим при этом затрачивать много времени/ресурсов.

Как сделать так, чтобы сначала были провалидированы бесплатные правила, потом малозатратные, потом сильно затратные
Уместно ли делать в таком случае сложный билдер, который будет полностью контролировать процесс создания сущности?
Например вначале инвокать все бесплатные проверки, затем малозатратные проверки, затем сильно затратные, затем собирать VO и совать их  в сущность?

При этом подходе (с приоритизацией) появляются проблемы т.к. VO больше не отвечает за свою валидность в момент создания.
Например:
1. валидируем уникальность email до создания VO (потому что не хотим вызывать АПИ если email не уникален, при этом данные из АПИ нужны при создании VO)
2. в стат конструкторе VO мы все равно должны проверить email на уникальность, т.к. конструктор могут инвокнуть откуда угодно

^ Это тоже можно решить за счет создания определенных приватных полей-флагов в рамках самой VO. Мол если валидация такого-то поля была инвокнута уже, то повторно валидировать его не надо, либо хранить как-то в кеше

Ваши мыли по этому поводу @dexplon @fes0r
Чет читал читал, и не понял проблемы. Логично делать сначала легкие операции. Плюс нужно смотреть по месту, на сколько какой кейс более частый или нет. Не старайтесь найти золотую кнопку. Есть множество решений, они все будут рабочими. А для бизнеса главное рабочие решения.  Для архитектуры же важно чтобы можно было легко расширяться, легко читался код, легко тестировалось и при этом не оверхэдить лишний раз. Если разные методы под это все подходят - они все хороши.
источник

CB

Chiki Briki in symfony
Volodymyr Melko
$email = new Email($emailString);
$this->checkIsUnique($email);

$apiDependantVO = new ApiDependantVO($this->getDataFromApi());
ну, дробить VO действительно вариант)
источник

VM

Volodymyr Melko in symfony
Chiki Briki
ну, дробить VO действительно вариант)
VO в принципе не должно содержать много полей. По крайней мере мне трудно представить пример такого ВО
источник

ПГ

Павел Г. in symfony
Chiki Briki
Возвращаясь к вчерашнему вопросу про валидацию. Вот вам кейс:
Нам в службу приходит валидное DTO, мы собираемся создать какую-то сущность. Сущность в коструктор требует VO.
Для создание VO нам требуется выполнить ряд операций:
- бесплатные по времени: строка должна быть email, либо сравнение с какими-либо константами и т.д.
- Малозатратная по ресурсам: какой-нибудь запрос в базу, например на уникальность email
- Сильно затратная по ресурсам: VO в конструкторе требует данные из какого-то АПИ

Итого у нас есть сущность, у насть есть DTO с данными (контракт данных соблюден), у нас есть n VO из которых мы хотим собрать нашу сущность, но так же мы не хотим при этом затрачивать много времени/ресурсов.

Как сделать так, чтобы сначала были провалидированы бесплатные правила, потом малозатратные, потом сильно затратные
Уместно ли делать в таком случае сложный билдер, который будет полностью контролировать процесс создания сущности?
Например вначале инвокать все бесплатные проверки, затем малозатратные проверки, затем сильно затратные, затем собирать VO и совать их  в сущность?

При этом подходе (с приоритизацией) появляются проблемы т.к. VO больше не отвечает за свою валидность в момент создания.
Например:
1. валидируем уникальность email до создания VO (потому что не хотим вызывать АПИ если email не уникален, при этом данные из АПИ нужны при создании VO)
2. в стат конструкторе VO мы все равно должны проверить email на уникальность, т.к. конструктор могут инвокнуть откуда угодно

^ Это тоже можно решить за счет создания определенных приватных полей-флагов в рамках самой VO. Мол если валидация такого-то поля была инвокнута уже, то повторно валидировать его не надо, либо хранить как-то в кеше

Ваши мыли по этому поводу @dexplon @fes0r
2. в стат конструкторе VO мы все равно должны проверить email на уникальность, т.к. конструктор могут инвокнуть откуда угодно
Вот это вообще мало понятно. Почему VO должно быть проверено на уникальность в рамках логики VO
источник

VM

Volodymyr Melko in symfony
телефонный номер, мыло, деньги - вот отличные примеры для ВО
источник

ПГ

Павел Г. in symfony
Volodymyr Melko
VO в принципе не должно содержать много полей. По крайней мере мне трудно представить пример такого ВО
Ну например какой-нить сложный "адресс" Или еще что. У меня была структурка на 30 проперти, вполне можно ее было бы при желании в матрешку VOшек первратить
источник

VM

Volodymyr Melko in symfony
Павел Г.
Ну например какой-нить сложный "адресс" Или еще что. У меня была структурка на 30 проперти, вполне можно ее было бы при желании в матрешку VOшек первратить
ну сложный адрес всеравно будет содержать в себе не примитивы, а другие ВО на 1-2 поля
источник