Size: a a a

2020 September 15

A

AZA in Yii Framework 3
Dmitriy S
Зарегай в основном контейнере команду с контекстом модульного
TaskCommand::class => function () use ($moduleContainer)  {
  return $moduleContainer->get(TaskCommand::class)
}
fn () => $moduleContainer->get(TaskCommand::class);
источник

СП

Сергей Предводителев... in Yii Framework 3
Может есть у кого публичный проект на гитхабе, где красиво сделана вся вот эта история с репозиториями/сервисами/слоями ?
источник

RT

Roman Tsurkanu in Yii Framework 3
@predvoditelev а почему там ViewRenderer появился?
источник

RT

Roman Tsurkanu in Yii Framework 3
источник

СП

Сергей Предводителев... in Yii Framework 3
Не должно быть...
источник

СП

Сергей Предводителев... in Yii Framework 3
Ошибка мержа)
источник

М

Махмуд in Yii Framework 3
Сергей Предводителев
Может есть у кого публичный проект на гитхабе, где красиво сделана вся вот эта история с репозиториями/сервисами/слоями ?
источник

СП

Сергей Предводителев... in Yii Framework 3
спасибо, посмотрю
источник

М

Махмуд in Yii Framework 3
Сергей Предводителев
спасибо, посмотрю
Пример на симфони или на yii3 нужно было?
источник

СП

Сергей Предводителев... in Yii Framework 3
Махмуд
Пример на симфони или на yii3 нужно было?
да тут без разницы)
источник

СП

Сергей Предводителев... in Yii Framework 3
https://github.com/yiisoft/event-dispatcher/pull/30

@romkatsu если я правильно понял - то один из вариантов использования провайдера, это сохранение сущности.

Мы в сущности что-то меняем, она копит события, а после успешной транзакции мы эти события уже обрабатываем.

Но как провайдер глобальный прокинуть в сущность, там ведь DI нельзя использовать...
источник

AB

Alexander Borisov in Yii Framework 3
Сергей Предводителев
https://github.com/yiisoft/event-dispatcher/pull/30

@romkatsu если я правильно понял - то один из вариантов использования провайдера, это сохранение сущности.

Мы в сущности что-то меняем, она копит события, а после успешной транзакции мы эти события уже обрабатываем.

Но как провайдер глобальный прокинуть в сущность, там ведь DI нельзя использовать...
сущность сама себя сохранить не можем, если речь про data-mapper
источник

СП

Сергей Предводителев... in Yii Framework 3
Alexander Borisov
сущность сама себя сохранить не можем, если речь про data-mapper
сохраняет репозиторий, который и будет уже вызывать какой-нибудь $entity->releaseEvents()
источник

AB

Alexander Borisov in Yii Framework 3
Сергей Предводителев
сохраняет репозиторий, который и будет уже вызывать какой-нибудь $entity->releaseEvents()
ну вот в репозиторий провайдер и заинджектить
источник

СП

Сергей Предводителев... in Yii Framework 3
Например, в сущности есть $entity->setName(), который генерит события "ИзменениеИмениСущности".

Но выполнить его надо после сохранения.

То есть сущность должна сама копить события
источник

AB

Alexander Borisov in Yii Framework 3
А, понял проблему
источник

AB

Alexander Borisov in Yii Framework 3
Видимо юзкейс, когда события генерируются не сущностью, а репозиторием
источник

СП

Сергей Предводителев... in Yii Framework 3
Генерит событие сущность, но вот обработаны они должны быть после сохранения
источник

СП

Сергей Предводителев... in Yii Framework 3
У Елисеева вроде неплохое решение.

Трейт для сущности, который позволяет сохранять события и потом их получить/очистить.

Сущность сохраняем не напрямую в репозитории, а через сервис. И вот сервис уже получает диспетчер, сохраняет сущность через репозиторий и если всё ок отдаёт диспетчеру события из сущности.
источник

T

TradersVE in Yii Framework 3
I'm testing a pure PHP config, and it's very simple, it works fine.
источник