Size: a a a

2021 January 30

VK

Vladyslav Kopaihorod... in symfony
просто ты ща полезешь в доменные ивенты из-за одного лисенера, а потом начнешь еще за ддд спрашивать
источник

fn

first name in symfony
это тоже костыль, нужно копаться с сущностями в массивах и понимать когда нужно сохранять, а когда еще нужно создать новый объект логгирования
источник

VK

Vladyslav Kopaihorod... in symfony
foreach ($uow->getScheduledEntityUpdates() as $entity) {
if entity instaf of Vasya {
em persist new(Petro)
$unitOfWork->computeChangeSet($classMetadata, $entity)
}
}
источник

VK

Vladyslav Kopaihorod... in symfony
6 строк
источник

VK

Vladyslav Kopaihorod... in symfony
а preUpdate не костыль был изначально? любые ивенты доктрины будут как костыль потому что это не очевидна фигня, которую сложно отследить, если их дофига
источник

fn

first name in symfony
ну да, а если у меня будет логгирование еще одной сущности?)
источник

VK

Vladyslav Kopaihorod... in symfony
так шо, пора делать ддд по елисееву?)
источник

VS

Valentin Saik in symfony
first name
ну да, а если у меня будет логгирование еще одной сущности?)
На каждую сущность свой лисенер, тоже норм решение
источник

fn

first name in symfony
Крч ладно, благодарю за помощь, тут 2 подхода, пойду смотреть какой лучше.
Хорошего дня.
источник

VK

Vladyslav Kopaihorod... in symfony
не забывай что один из подходов это просто нааписать тупой код без ивентов)
источник

VK

Vladyslav Kopaihorod... in symfony
и он отлично будет работать
источник

VS

Valentin Saik in symfony
Vladyslav Kopaihorodskyi
не забывай что один из подходов это просто нааписать тупой код без ивентов)
Не без ивентов же, просто завязка на ивенты доктрины вместо своих, поэтому и самому писать меньше придется
источник

VK

Vladyslav Kopaihorod... in symfony
Valentin Saik
Не без ивентов же, просто завязка на ивенты доктрины вместо своих, поэтому и самому писать меньше придется
ну если в проекте есть один экшн на апдейт сущности, просто там сделать и все
источник

BB

Beknur Baltabaev in symfony
first name
Добрый день.
Ребят, хочу сделать логгирование изменения нескольких сущностьей.
Есть две сущности:
App:
int $id
status $status

Task:
int $id
status $status

Хотелось бы складывать в таблицу время смены статуса.
Log
int $id
string $type_entity (app or task)
int $id_entity
status $status
date $date

Прогуглил насчет полиморфных связей, но чет все советуют от них уйти, либо же нахожу примеры, которые мне не подходят.
Может кто дать совет как это реализовать на доктрине и вообще стоит ли над этим заморачиваться или есть лучшее решение?

Заранее благодарю за ответы :3
use Gedmo\Mapping\Annotation as Gedmo;
use Gedmo\Translatable\Translatable;

...
/**
    * @var string $nameRu
    *
    * @Gedmo\Translatable
    * @ORM\Column(name="name_ru", type="string", length=255)
    */
   private $nameRu;
/**
    * @var datetime $contentChanged
    *
    * @ORM\Column(name="content_changed", type="datetime", nullable=true)
    * @Gedmo\Timestampable(on="change", field={"name_ru", "description","deleted","businesstypes"})
    */
   private $contentChanged;

get
log
$query = $em->createQuery(
           'SELECT p
               FROM Gedmo\Loggable\Entity\LogEntry p
               WHERE p.action = :action AND p.objectClass LIKE :objectclass AND p.loggedAt LIKE :datetoday'
       )->setParameter('action', 'create')->setParameter('objectclass', '%BusinessLicense%')->setParameter('datetoday', '%'.date('Y-m-d').'%');
       $createdlicenses = sizeof($query->getResult());
источник

SM

Sergey Milegov in symfony
В самой же доке доктрины написано в каких ивентах можно флаш делать, в каких нет. В некоторых можно выловить рекурсию. Потому шо ты флашишь посреди флаша.
источник

SM

Sergey Milegov in symfony
источник

КГ

Константин Грачев... in symfony
first name
Добрый день.
Ребят, хочу сделать логгирование изменения нескольких сущностьей.
Есть две сущности:
App:
int $id
status $status

Task:
int $id
status $status

Хотелось бы складывать в таблицу время смены статуса.
Log
int $id
string $type_entity (app or task)
int $id_entity
status $status
date $date

Прогуглил насчет полиморфных связей, но чет все советуют от них уйти, либо же нахожу примеры, которые мне не подходят.
Может кто дать совет как это реализовать на доктрине и вообще стоит ли над этим заморачиваться или есть лучшее решение?

Заранее благодарю за ответы :3
Я сделал для статусов отдельную таблицу и при изменении статуса создаю новую запись.
На чтение во вьюхе мне приходит последний статус как текущий
источник

fn

first name in symfony
Константин Грачев
Я сделал для статусов отдельную таблицу и при изменении статуса создаю новую запись.
На чтение во вьюхе мне приходит последний статус как текущий
Благодарю за ответ.
Да,  я впринципе по такому же пути и пошел, просто как именно создавать новую запись "лога" был вопрос)
источник

КГ

Константин Грачев... in symfony
first name
Благодарю за ответ.
Да,  я впринципе по такому же пути и пошел, просто как именно создавать новую запись "лога" был вопрос)
public function changeStatus(Status $status): void
{
   $this->statuses[] = new OrderStatus($this, $status);
}
источник

КГ

Константин Грачев... in symfony
или ещё лучше
public function confirm(): void
{
   $this->statuses[] = new OrderStatus($this, Status::confirm());
}
источник