Skip to content

Instantly share code, notes, and snippets.

@Mezzle
Created October 18, 2012 14:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Mezzle/3912255 to your computer and use it in GitHub Desktop.
Save Mezzle/3912255 to your computer and use it in GitHub Desktop.
ServiceLocator/EventManager Traits
<?php
namespace Protec\Stdlib;
use \Zend\EventManager\EventManagerInterface;
use \Zend\ServiceManager\ServiceLocatorAwareInterface;
trait EventManagerAwareTrait
{
protected $event_manager;
/**
* getEventManager
*
* @return EventManagerInterface
*/
public function getEventManager()
{
if (is_null($this->event_manager)) {
if ($this instanceof ServiceLocatorAwareInterface) {
if (!is_null($this->getServiceLocator())) {
if ($this->getServiceLocator()->has('EventManager')) {
$event_manager = $this->getServiceLocator()->get('EventManager');
$this->setEventManager($event_manager);
}
}
}
}
return $this->event_manager;
}
/**
* setEventManager
*
* @param EventManagerInterface $eventManager
*/
public function setEventManager(EventManagerInterface $eventManager)
{
$this->event_manager = $eventManager;
$this->event_manager->addIdentifiers(
array(
get_called_class(),
__CLASS__
)
);
return $this;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment