<?php
namespace SaintElmos\BaseBundle\EventListener;
use Pimcore\Event\Model\ElementEventInterface;
use Pimcore\Event\Model\DataObjectEvent;
use Pimcore\Event\Model\AssetEvent;
use Pimcore\Event\Model\DocumentEvent;
use SaintElmos\BaseBundle\Services\Configuration;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
use Psr\Log\LoggerInterface;
class TestListener {
private $setConf;
private $logger;
public function __construct(Configuration $setConf, LoggerInterface $logger)
{
$this->setConf = $setConf;
$this->logger = $logger;
}
public function onPreUpdate (ElementEventInterface $e) {
if($e instanceof AssetEvent) {
// do something with the asset
$foo = $e->getAsset();
} else if ($e instanceof DocumentEvent) {
// do something with the document
$foo = $e->getDocument();
} else if ($e instanceof DataObjectEvent) {
// do something with the object
$foo = $e->getObject();
//$foo->setMyValue(microtime(true));
// we don't have to call save here as we are in the pre-update event anyway ;-)
}
}
/**
* @param FilterControllerEvent $event
*/
public function onKernelController(FilterControllerEvent $event)
{
if(!isset($this->setConf->INIT)) {
$this->setConf->INIT = true;
$this->logger->debug('TestListener::onKernelController #############################################################################');
}
}
}