Size: a a a

2020 November 05

Д

Дмитрий in Yii Framework 3
Кажется, отложенный диспетчер выглядит хорошим аналогом для этих нелепых костылей с эвентами.
источник

СП

Сергей Предводителев... in Yii Framework 3
Дмитрий
Кажется, отложенный диспетчер выглядит хорошим аналогом для этих нелепых костылей с эвентами.
Но тогда диспетчер надо внутрь сущности прокидывать
источник

Д

Дмитрий in Yii Framework 3
Зависит от сущности. "Богатые" сущности и так много чего в себе делают.
источник

a

anton in Yii Framework 3
У кого то есть yii-docker для php 8?
источник

В

Виктор in Yii Framework 3
Дмитрий
Кажется, отложенный диспетчер выглядит хорошим аналогом для этих нелепых костылей с эвентами.
Насколько я помню, его пытались сделать и решили, что не стоит
источник

В

Виктор in Yii Framework 3
Лучше какой-то примитив, который накапливает в себе события, а затем запускает их в диспетчер
источник

СП

Сергей Предводителев... in Yii Framework 3
Виктор
Насколько я помню, его пытались сделать и решили, что не стоит
источник

В

Виктор in Yii Framework 3
👍
источник

В

Виктор in Yii Framework 3
А какой именно это должен быть примитив... @predvoditelev считает, что это трейт, а я - что сервис)
источник

СП

Сергей Предводителев... in Yii Framework 3
Виктор
А какой именно это должен быть примитив... @predvoditelev считает, что это трейт, а я - что сервис)
Можешь пример накидать с сервисом?
источник

В

Виктор in Yii Framework 3
В целом я считаю, что трейты не стоит использовать там, где есть возможность их не использовать. Они привносят побочные эффекты
источник

AM

Alexander Makarov in Yii Framework 3
anton
@samdark удаление отсюда errorLevel мне кажется неверным - т.к. изначально уровень был 1, а по умолчанию псалм выставляет 2
https://github.com/yiisoft/security/blob/master/psalm.xml

Можно регулировать между уровнем 1 и 2 с помощью параметра totallyTyped, но он устарел
https://psalm.dev/docs/running_psalm/configuration/#totallytyped
Эээ... Разве не 1 по дефолту?
источник

В

Виктор in Yii Framework 3
Сергей Предводителев
Можешь пример накидать с сервисом?
interface DeferredEventService {
   public function pushEvent(object $event): void;
   public function releaseEvents(): void;
}
источник

AM

Alexander Makarov in Yii Framework 3
Ну блин :)
источник

AM

Alexander Makarov in Yii Framework 3
А в схеме у них написано что дефолт 1...
источник

СП

Сергей Предводителев... in Yii Framework 3
Виктор
interface DeferredEventService {
   public function pushEvent(object $event): void;
   public function releaseEvents(): void;
}
Это я видел, но как использовать.
Мне надо сделать реализацию интерфейса, потом её через DI получить, потом передавать при каждом действии в сущность
источник

В

Виктор in Yii Framework 3
Сергей Предводителев
Это я видел, но как использовать.
Мне надо сделать реализацию интерфейса, потом её через DI получить, потом передавать при каждом действии в сущность
Реализацию сделать дефолтную в пакете. Можно даже без интерфейса, наверное. Сейчас пример сделаю
источник

AM

Alexander Makarov in Yii Framework 3
Посмотрите мой закрытый pull request...
источник

В

Виктор in Yii Framework 3
Сергей Предводителев
Это я видел, но как использовать.
Мне надо сделать реализацию интерфейса, потом её через DI получить, потом передавать при каждом действии в сущность
final class CommentService
{
   private CommentRepositoryInterface $commentRepository;
   private DeferredEventService $eventService;

   public function create(string $threadId, string $userId, string $body, ?string $byUserId = null): Comment
   {
       $this->eventService->pushEvent(new EventBefore());
       $comment = new Comment(
           UuidHelper::generateTimestampFirstCombUuid4(),
           $thread->getId(),
           $userId,
           $body,
           $byUserId,
       );
       $this->eventService->pushEvent(new EventInside());

       $this->commentRepository->save($comment);
       $this->eventService->pushEvent(new EventAfter());

       $this->eventService->releaseEvents();

       return $comment;
   }
}
источник

a

anton in Yii Framework 3
Alexander Makarov
Эээ... Разве не 1 по дефолту?
Нет, в коде видно что 2. И, я сегодня на примере json пакета заметил, что не по дефолту
источник