
Vitaly
06.12.2017
16:19:01
Ну и в первом варианте никак. И зачем вообще там подтягивать зависимость? Что бы после выборки проводить манипуляции над объектом Uuid?
После выборки будет просто строка которую я описываю в аннотациях, как @ORM\Column(type="guid")

Валерий
06.12.2017
16:20:39
насколько я понял, конструктор там чисто для конструирования сущности (вау), и для последующего назначения идентификатора.
а доктрина собирает рефлексией
лично я бы ни так, ни эдак не делал

Google

Vitaly
06.12.2017
16:21:09
А как бы сделал ты?
Кто как вообще? интересно

Dmitry
06.12.2017
16:22:05
только во втором варианте должно быть __construct (ThisEntityId $id, ...) конечно, ну или просто string $id, если не используем VO Id


Валерий
06.12.2017
16:24:58
я бы сделал сущность с именованными конструкторами, имеющими значения с точки зрения бизнес логики предметной области. id передавал бы в параметре. конструктор можно вовсе закрыть во избежание несогласованной модели.
ну и не привязывался бы к докрине, это уже скорее infrastructure layer

Alexander
06.12.2017
16:30:01
// Entity
public function __construct(ID $id, /* ...other params */)
{
$this->id = $id;
// ...
}
// Service
public function __construct(IDFactoryInterface $idFactory, /*...other dependencies */)
{
$this->idFactory = $idFactory;
// ...
}
public function createEntity($params)
{
// ...
return new Entity($this->idFactory->createNew(), $params);
}
class UuidFactory implements IDFactoryInterface
{
public function createNew()
{
return ID::create(Uuid::uuid64()->toString());
}
}
я б так поступил

Dmitry
06.12.2017
16:31:32
new FooEntity($fooEntityRepository->getNextIdentity()) :)

Alexander
06.12.2017
16:33:05

Vitaly
06.12.2017
16:33:16

Dmitry
06.12.2017
16:33:56
а это зависит откуда берем id... от new Uuid до $db->nextSequence

Alexander
06.12.2017
16:37:03
как вариант фабрику не в сервис отдавать, а в репозиторий.
поясню: вариант с фабрикой показался удобным потому, что заменить можно в контейнере.
вроде как отделяемся от конкретных библиотек :)

Google

Vitaly
06.12.2017
16:39:56
Спасибо за мнения. Обдумываю.

Валерий
06.12.2017
16:48:50
Как? Мапить сущнсти в репозитории?
в моем понимании dcotrine - это infrastructure.
однако, entity я отношу к domain layer, где лишь описаны поля и инварианты.
domain ничего не должен знать про infrastructure, поэтому с точки зрения модели я ничего про доктрину не знаю.
как то так

Vitaly
06.12.2017
16:51:19

Валерий
06.12.2017
16:51:31
я бы маппил через yml/xml

Vitaly
06.12.2017
16:51:51
Спасибо.

Anton
06.12.2017
16:53:08

Валерий
06.12.2017
16:58:59
репозиторий только для write model
а там можно выехать и на EntityName[]

Sergey
06.12.2017
17:00:04
они как бы снаружи, метаданные просто

Валерий
06.12.2017
17:00:12
не влияют
но зачем, если можно в yml (:
в удобном месте

Sergey
06.12.2017
17:00:40
хз, мне так удобнее
хотя сейчас вот в yaml делаю
потому что так сделано в проекте
и в целом мне пофигу

Google

Sergey
06.12.2017
17:01:16
мне главное что бы доктрина была изолирована в пределах репозиториев

Валерий
06.12.2017
17:01:27
верно

Sergey
06.12.2017
17:01:31
ну и как у тебя - неких query сервисах представляющих часть read model
у меня в этом плане пока каша - нет четкого разделения
о
https://gist.github.com/fesor/d8d06cc20d2861c56148ffd2dfc67220
вот может ты накидаешь идей
это типа хочу read model для очень простых сценариев где лень заморачиваться с сервисами отдельными
и при этом иметь контроль над типами хоть какой

Валерий
06.12.2017
17:04:27
посмотрю позднее чуть чуть
надо уйти с работы (: я никак не могу уйти с работы

Tadeus
06.12.2017
17:46:52

Tadeus
06.12.2017
17:47:41
Если б не нужно было забрать посылку через час максимум, хер бы свалил

Dmitry
07.12.2017
06:57:02

Валерий
07.12.2017
06:57:26
У меня двое

Dmitry
07.12.2017
06:58:16
коллега :) тогда не понимаю про работу

Валерий
07.12.2017
06:59:04
Да так получилось, что именно сейчас нужно выложиться. Поэтому столько внимания работе

Dmitry
07.12.2017
06:59:40
ну тогда предложение снимается за незнание контекста

Dmitriy
07.12.2017
06:59:45
затыкание дыр тонущего корабля )

Roman
07.12.2017
07:02:08
Как по мне, то в привязке к ArrayCollection нету ничего страшного, я ее добавил как зависимость и юзаю со спокойной душой. Там нету ничего магического, чтобы от нее избавляться из домена.

Google

Fayozjon [CybernatiC]
07.12.2017
07:21:06
Всем доброго времени суток!
Есть файл wsdl и sxd можно ли с них сгенерировать СЕРВЕРНЫЙ php код?
Клиент сгенерировался из wsdl2php

Andrey
07.12.2017
07:24:06
или я не так тебя понял?

Fayozjon [CybernatiC]
07.12.2017
07:24:35
бро совсем не так понял =(

Andrey
07.12.2017
07:25:02
поясни тогда))

Fayozjon [CybernatiC]
07.12.2017
07:26:35
wsdl описание методов и что они принимают и что отдают

Andrey
07.12.2017
07:26:42
так, да

Fayozjon [CybernatiC]
07.12.2017
07:26:48
есть библиотека которая генерирует КЛИЕНТА

Admin
ERROR: S client not available

Fayozjon [CybernatiC]
07.12.2017
07:27:05
а я ищу то что может сгенерировать классы для SERVICE
это не какой то конкретный сайт типа фб
а сторонний сервис

Andrey
07.12.2017
07:27:44
так фб это тоже сторонний сервис

Fayozjon [CybernatiC]
07.12.2017
07:27:51
ты не создаешь свой фб
а тут надо создать свой сервис на основе того wsdl файла
Салам Нурик!

Andrey
07.12.2017
07:28:34
насколько я знаю wsdl2php генерит и то что клиент шлет, и то что сервер отдает
и те и другие классы

Nurik
07.12.2017
07:28:39

Fayozjon [CybernatiC]
07.12.2017
07:28:58

Google

Andrey
07.12.2017
07:29:05
аа, тогда попробуй вот че

Fayozjon [CybernatiC]
07.12.2017
07:29:07
если есть методы генерации серввера дай знать )

Andrey
07.12.2017
07:29:23
https://github.com/wsdl2phpgenerator/wsdl2phpgenerator
он и то и то генерит
я использовал пару раз
правда с некоторыми wsdl он проебывал пару атрибутов, но там скорее дело в сервисах было) в основном все ок
там все просто, травишь ему wsdl и он тебе выплюнет обертку над вызовами, классы запросов и классы ответов

Fayozjon [CybernatiC]
07.12.2017
07:30:37
он генерит сервер?
я его и юзаю
он выблевал только клиента
которому скармливаешь URL
=)

Andrey
07.12.2017
07:31:08
хм оч странно
а можешь пример привести абстрактный что бы ты хотел чтоб он тебе сгенерил?
у меня все еще сохраняется чувство что я не врубаюсь о чем ты))

Fayozjon [CybernatiC]
07.12.2017
07:32:00
давай сразу скину то говно)
что дали мне
Вот файлики
надо поднять используя эти интерфейсы свой сервис
биллинг будет обращаться по этим методам извне