Kdyby/Doctrine, PostLoad event
- Azathoth
- Člen | 495
Pokouším se napojit nějaké listenery na postLoad event, bohužel se mi to
vůbec nedaří.
V PHPstormu mám nainstalovanou extension kdyby/events, ale ta mi postLoad
vůbec nenašeptává.
Takhle vypadá můj listener:
class PrivilegesListener extends Object implements Subscriber {
/**
* Returns an array of events this subscriber wants to listen to.
*
* @return array
*/
public function getSubscribedEvents()
{
return ["Doctrine\ORM\Events::postLoad"];
}
public function postLoad($args)
{
Debugger::barDump($args);
// throw new \Exception("post load started");
}
}
a je správně zaregistrovaný v configu
events:
subscribers:
- App\Model\PrivilegesListener
Bohužel se nic nedumpne, i když se z doctrine tahá entit hodně.
Co dělám špatně?
Případně jaký event se vyvolá, když vytáhnu přes doctrine z databáze
nějakou entitu?
- David Matějka
- Moderator | 6445
ten NS je Doctrine\ORM\Event
, ne Events, viz https://github.com/…e/Events.php#L27
radeji pouzij ty class constanty a je to ;)
- Filip Procházka
- Moderator | 4668
Máš tam na to konstanty, které můžeš použít.
public function getSubscribedEvents()
{
return [Kdyby\Doctrine\Events::postLoad];
}
A kdyby/events obsahují panel do tracy debug baru. Když ho zapneš, bude vidět jaké se volají eventy v aplikaci a jaké listenery poslouchají na jaké eventy.
events:
debugger: on
Ale vykresluje hodně informací, takže na normální vývoj (když zrovna
neladíš) tak bych ho doporučoval mít nastavenej na count
a
zapínat celej panel jen když něco nefunguje.