@symfony_php

Страница 741 из 1418
Glavnii
15.03.2018
15:37:44
бро это пакет во первых

Алексей
15.03.2018
15:38:20
ramsey/uuid
И никаких коллизий?

Glavnii
15.03.2018
15:38:23
когда пишут доку не прдполагают как именно у тебя поставлен пых и другое

Алексей
15.03.2018
15:38:29
На все 100% доверяете?

Google
Bohdan
15.03.2018
15:38:35
И никаких коллизий?
ну у меня сущностей не очень много, но коллизий не было

там ведь энтропия дикая

Glavnii
15.03.2018
15:39:17
и прям написано надо поставить mbstring

или gd

Bohdan
15.03.2018
15:39:20
На все 100% доверяете?
5.3x10^36 вариантов

Glavnii
15.03.2018
15:39:27
или zip

канешн)

Алексей
15.03.2018
15:39:40
5.3x10^36 вариантов
ну time-based может коллизнуть

Bohdan
15.03.2018
15:40:40
ну потому я и использую ууид)

Alexandr
15.03.2018
15:41:35
На все 100% доверяете?
вроде норм) The number of random version 4 UUIDs which need to be generated in order to have a 50% probability of at least one collision is 2.71 quintillion. This number is equivalent to generating 1 billion UUIDs per second for about 85 years. https://en.wikipedia.org/wiki/Universally_unique_identifier#Collisions

Glavnii
15.03.2018
15:42:56
или васкулит

http://php.net/manual/ru/mbstring.installation.php

см. выше предлагают гуглить

Google
Sergey
15.03.2018
16:27:04
Кто как генерит unique id всякие?
либо uuid, либо тикет сервер

можно еще как на ютубчике

Алексей
15.03.2018
16:39:34
можно еще как на ютубчике
а как на ютьюбчике?

Sergey
15.03.2018
16:39:59
загугли, на хабре была статья недавно



Максим
15.03.2018
16:44:46
Я 666ой подписант)

Артур Евгеньевич
15.03.2018
17:03:04
я 666

Salavat
15.03.2018
17:11:03
Демон

Bohdan
15.03.2018
17:12:06
изыди :D

Yevgeniy
15.03.2018
20:12:03
class NotBlank extends Constraint { const IS_BLANK_ERROR = 'c1051bb4-d103-4f74-8988-acbcafc7fdc3'; … Не подскажете по какому принципу генерируется код ошибок в Symfony Constraint? ‘c1051bb4-d103-4f74-8988-acbcafc7fdc3’ ???

Yevgeniy
15.03.2018
20:16:03
Спасибо, что-то вылетело из головы

Yaroslav
15.03.2018
20:44:44
Уважаемые знатоки. Есть тут те, кто угорает по Symfony и DDD одновременно? Допустим есть Business Entity "Employable" у которого есть такие комплексные VO как Address(string country, string city, string postcode, string street), PaymentData(PaymentType type, InvoiceData data). Такие VO хранятся в БД в виде JSON объектов. Как вы бы организовали эти VO? 1) такие VO реализуют интерфейс \JsonSerializable и их кодирование происходит через json_encode где-то в ORM 2) такие VO не делают ничего такого и их кодированием и декодированием занимаются внешние сериализаторы и нормализаторы? 3) третий вариант

Andrey
15.03.2018
20:55:52
Уважаемые знатоки. Есть тут те, кто угорает по Symfony и DDD одновременно? Допустим есть Business Entity "Employable" у которого есть такие комплексные VO как Address(string country, string city, string postcode, string street), PaymentData(PaymentType type, InvoiceData data). Такие VO хранятся в БД в виде JSON объектов. Как вы бы организовали эти VO? 1) такие VO реализуют интерфейс \JsonSerializable и их кодирование происходит через json_encode где-то в ORM 2) такие VO не делают ничего такого и их кодированием и декодированием занимаются внешние сериализаторы и нормализаторы? 3) третий вариант
Если мы говорим за ORM, то доктрина собирает embedded объекты рефлексией. И ей на json, не json всё равно. Можно, конечно, ввести свой тип и сериализовать там. Но это не отличается от сериализации/десериализации самому. Если работать без ORM, то если делать объект ответственным за свою сериализацию, то нужно и десериализацию на него ложить. А это только статика (fromData()), что не очень. Конечно, можно сделать конструктор с array в аргументе и именованный конструктор (статика), но тоже не ок. Остаётся ответственный сериализатор.

Andrey
15.03.2018
20:59:08
Можно делать константы в dto, около FIELD_* которые будут в jsonSerialize, тогда сериализатор будет использовать для сериализации json encode, а при десериализации конструктор, куда используя константы впихнёт параметры

Yaroslav
15.03.2018
20:59:43
и не совсем понял про "json не json"

Google
Yaroslav
15.03.2018
21:01:00
я не совсем понимаю как она разрулит какой-то комплексный VO который состоит из нескольких других VO

Andrey
15.03.2018
21:01:06
Спасибо. А на сколько вообще богоугодно в симфони не пользоваться ORM? просто пока мне кажется что для таких вещей оно больше мешает, чем помогает
Работаю без ORM. Сложно самому строить такие объекты, т. к. объекты имеют свою логику, и могут не позволять создавать себя в "среднем" состоянии (пример - со статусом in process, например). Поэтому тут поможет

Yaroslav
15.03.2018
21:02:01
но Entity и VO не должны иметь логики, кроме элементарной самовалидации

Andrey
15.03.2018
21:02:05
Вот об этом.

3) @Embeddable в доктрине есть же

Entity? Почему нет?

Yaroslav
15.03.2018
21:04:10
Entity? Почему нет?
ну в понятиях symfony/doctrine может быть и может. но вообще если следовать заветам фаулера и эванса, вроде как нет

Bohdan
15.03.2018
21:04:36
рич модели

Alan
15.03.2018
21:04:45
по заветам да)

Yaroslav
15.03.2018
21:04:53
тут на примерах надо
Скажем Address состоит из Country, City, PostalCode и Street

Alan
15.03.2018
21:06:07
почему City это VO ?

Yaroslav
15.03.2018
21:06:36
это простой пример. другой пример PaymentData: PaymentType (по сути только строка) и InvoiceData, который в зависимости от выбратнного типа будет вообще разными объектами с разным набором полей

Alan
15.03.2018
21:08:14
адрес прямо в доках доктрины как пример описан http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/embeddables.html

Yaroslav
15.03.2018
21:08:23
почему City это VO ?
потому что у него есть логика самовалидации. но я сейчас стараюсь давольно радикально следовать этой философии. в рамках эксперимента, например

Google
Admin
ERROR: S client not available

Alan
15.03.2018
21:08:37
и как город себя валидирует?

Yaroslav
15.03.2018
21:09:25
Допустим он не пустой, и включон в нейки вайт-лист. это не так важно

адрес прямо в доках доктрины как пример описан http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/embeddables.html
да, со строками все просто. я бы хотел разобраться с более заковыристым вариантом

Andrey
15.03.2018
21:09:59
https://paucls.wordpress.com/2017/03/04/ddd-building-blocks-value-objects/ вот вроде релевантная статейка

Yaroslav
15.03.2018
21:10:18
Спасибо

Alan
15.03.2018
21:10:46
непустой город это разве не валидность адреса?)

и белый список чего? просто городов?

или городов допустимых в адресе?

Yaroslav
15.03.2018
21:11:45
непустой город это разве не валидность адреса?)
допустим их только два: москва и питер.

или городов допустимых в адресе?
городов допустимых в системе

Andrey
15.03.2018
21:11:57
fesor спит, можно пофилософствовать

Alan
15.03.2018
21:12:49
ну у тебя vo - адрес, он и валидирует и знает каким ему быть

Yaroslav
15.03.2018
21:12:56
нет

Alan
15.03.2018
21:13:03
ладно)

Yaroslav
15.03.2018
21:13:04
он знает что в нем должен быть город

город это некоторое важное для системы значение

Alan
15.03.2018
21:13:24
а город знает каким ему быть для адреса?))

Yaroslav
15.03.2018
21:13:30
оно может быть Москва или Питер.

Google
Yaroslav
15.03.2018
21:13:38
город знает каким ему можно быть вообще

в рамках конкретного домена у нас только два города, например

Alan я понимаю, что пример притянут за уши, но это намеренно

Alan
15.03.2018
21:14:35
а в другом домене как этот город будет себя вести?)

Yaroslav
15.03.2018
21:14:46
это простой пример, второй пример с PaymentData выглядит более оправдано

свой

Alan
15.03.2018
21:15:20
то есть тот City это AdressCity ?)

ведь там он себя ведет соответственно домену

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