Deprecated : Constant E_STRICT is deprecated in /home/pastorz/old-espace-client/vendor/symfony/error-handler/ErrorHandler.php on line 58
Deprecated : Constant E_STRICT is deprecated in /home/pastorz/old-espace-client/vendor/symfony/error-handler/ErrorHandler.php on line 76
Symfony Profiler
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Bridge\Doctrine\Messenger ;
use Doctrine\Persistence\ManagerRegistry ;
use Symfony\Component\EventDispatcher\EventSubscriberInterface ;
use Symfony\Component\Messenger\Event\WorkerMessageFailedEvent ;
use Symfony\Component\Messenger\Event\WorkerMessageHandledEvent ;
/**
* Clears entity managers between messages being handled to avoid outdated data.
*
* @author Ryan Weaver <ryan@symfonycasts.com>
*/
class DoctrineClearEntityManagerWorkerSubscriber implements EventSubscriberInterface
{
private $managerRegistry ;
public function __construct ( ManagerRegistry $managerRegistry )
{
$this -> managerRegistry = $managerRegistry ;
}
public function onWorkerMessageHandled ()
{
$this -> clearEntityManagers ();
}
public function onWorkerMessageFailed ()
{
$this -> clearEntityManagers ();
}
public static function getSubscribedEvents ()
{
return [
WorkerMessageHandledEvent ::class => 'onWorkerMessageHandled' ,
WorkerMessageFailedEvent ::class => 'onWorkerMessageFailed' ,
];
}
private function clearEntityManagers ()
{
foreach ($this -> managerRegistry -> getManagers () as $manager ) {
$manager -> clear ();
}
}
}