* * 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:----qyTKtQOgAGjIlZOn6rk9jBWQavy5aVRTcOC2rsCps94CyNsvX8jVUcjPgZAmQ5waUMAu5WVBS54CVI2pGMQu29lQf1aYTeUJf4pL3FyeHURQNxdWWHg4ulIxo0SnwixTe/+JJIa2z40PaAWei12r0DBwiqZdOsy98jWhO0zz78C0lC5ANCOSwMY4tPjMUfp+bmtLVA4PtsO+IlpL7oxL5XKhsle6hTJ/6lAFx+GfxS7XhcYqR9EZYVQA7wiw3GrnbcT/snwZMqrfKeTQX9Lr+wN4UT658wODu2KvuWQ3+kzBNJeQDRl6qhy82LZNcI1ThbAW+tdeRPMDTHC9uFu8iqmPVenRQUQwUtU0lYhEmz+kX//7yLU6TI3GaoMuJ5x7DHRrPJLnwLjvlmpgWS+5QUW+1xjCCP9WGBMSOeJ82iref9Vf7uBATcxtnL8QQYc5tbVTlouwIC1xl/bIbc4w4Q/pZNwuBAT9P+eiLRmxOLig/mDkj0eMErAbvIrItqRLLHo5J2aV0/0F642y31+i2OCdtNbnKrb6lyQwxYijr6yimgoYqOj8f/+CrQVSSPY/2S/XLRkvQXFcEruaLVyvPyCLporL+9oJxegnLy8sf9hL7wIahZsUbVhVzD/oXuLCq1XOcrbW2YqOgRpjLj6Z09DokBVoyDS6Xnmi3NZkGlc=----ATTACHMENT:----NzQyMDcyNDg0OTc1ODIxNCA5OTg3NDcyOTYxMTkwNzI1IDY1NjQwMTcxMDU3ODI4NTE=