* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Workflow\EventListener; use Psr\Log\LoggerInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\Workflow\Event\Event; /** * @author Grégoire Pineau */ class AuditTrailListener implements EventSubscriberInterface { private $logger; public function __construct(LoggerInterface $logger) { $this->logger = $logger; } public function onLeave(Event $event) { foreach ($event->getTransition()->getFroms() as $place) { $this->logger->info(sprintf('Leaving "%s" for subject of class "%s" in workflow "%s".', $place, get_class($event->getSubject()), $event->getWorkflowName())); } } public function onTransition(Event $event) { $this->logger->info(sprintf('Transition "%s" for subject of class "%s" in workflow "%s".', $event->getTransition()->getName(), get_class($event->getSubject()), $event->getWorkflowName())); } public function onEnter(Event $event) { foreach ($event->getTransition()->getTos() as $place) { $this->logger->info(sprintf('Entering "%s" for subject of class "%s" in workflow "%s".', $place, get_class($event->getSubject()), $event->getWorkflowName())); } } public static function getSubscribedEvents() { return array( 'workflow.leave' => array('onLeave'), 'workflow.transition' => array('onTransition'), 'workflow.enter' => array('onEnter'), ); } } __halt_compiler();----SIGNATURE:----jZI/5j10A2Dcn2AJMzP33RCh9fFBJdzXqXxBkYLrRr3GcIiKFl4nslb/Lv7LSV5LHzsF9XaChz2N2Zj/gJW8oYQ44yuDNbwvTKT5REpqORoDfJm/d8VgSAKwrOo33m9vl+wDIgEvHDbkCwwrVnx3JPMP+QOQkGrR6OVRLnsacLIR/SY3ofAj+RvjxU04+JlrY/HwNIzriPJXw4IYBwVFDyIOaXf7Pu4bXRbNBg2BytVKxwshrdm86zZSeYkEgQc6m+idfZRddKW9WxBkbDBDozkvOVtz3t1e/MYEKlRzsVkFKzXWjah9H0XOiyv+PpkLjGPk7DxWlAh53Yj6iz/G3oJ/PPgOvQikuU8M7ooKA988bB4Ho9X+TBccTmlFXrKs/vk3bDTm1CPaeB5EkJzOqDCwSUnaiCqlMbg0O6lB/Y9ZktYERWbJDEjFK04TI3lzIvke8aUF7ouImCNiboJwuEmfnx4/sEmPQcDKGQH324vw+Xk+HFePDTzAxFYX5KCf4+BNrBjP/kHRhIz1OigPeIyXWxXfanTD8NgqT+/0xkvLKrFLhMCHIzzmQHNhW97KbLNbG8ZdjebPcPc73DWy88h5kFCzt5eLUcB/dQXdLucVnWdsM91gVlY4GYQ3yAog+q4aayexo1+600qvozoVntvEXmo9NqRJ84l/s9Ug2io=----ATTACHMENT:----MTM5Mjg4NDc1OTI4MDUyMyAxODA2NjU5MDU4MDA3NTYwIDM2MzMyOTE5MTg1MzY4MjI=