
Glavnii
15.03.2018
15:37:44
бро это пакет во первых

Алексей
15.03.2018
15:38:20

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

Glavnii
15.03.2018
15:39:27
или zip
канешн)

Алексей
15.03.2018
15:39:40

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
можно еще как на ютубчике

Алексей
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’ ???

Алексей
15.03.2018
20:14:10

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) третий вариант

Алексей
15.03.2018
20:45:21

f4rt~
15.03.2018
20:50:58
Хотя *thinking*


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 в аргументе и именованный конструктор (статика), но тоже не ок. Остаётся ответственный сериализатор.


Yaroslav
15.03.2018
20:58:41
Если мы говорим за ORM, то доктрина собирает embedded объекты рефлексией. И ей на json, не json всё равно. Можно, конечно, ввести свой тип и сериализовать там. Но это не отличается от сериализации/десериализации самому.
Если работать без ORM, то если делать объект ответственным за свою сериализацию, то нужно и десериализацию на него ложить. А это только статика (fromData()), что не очень. Конечно, можно сделать конструктор с array в аргументе и именованный конструктор (статика), но тоже не ок. Остаётся ответственный сериализатор.
Спасибо. А на сколько вообще богоугодно в симфони не пользоваться ORM? просто пока мне кажется что для таких вещей оно больше мешает, чем помогает

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

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

Google

Alan
15.03.2018
21:00:21

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

Andrey
15.03.2018
21:01:06

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

Andrey
15.03.2018
21:02:05
Вот об этом.
3) @Embeddable в доктрине есть же
Entity? Почему нет?

Alan
15.03.2018
21:03:18

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

Bohdan
15.03.2018
21:04:22

Alan
15.03.2018
21:04:32

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

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

Andrey
15.03.2018
21:04:46

Yaroslav
15.03.2018
21:04:53

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
Допустим он не пустой, и включон в нейки вайт-лист. это не так важно

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 ?)
ведь там он себя ведет соответственно домену