2014-11-23 20:13:38 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Event;
|
|
|
|
|
2014-12-22 19:15:38 +01:00
|
|
|
use Pimple\Container;
|
2014-11-23 20:13:38 +01:00
|
|
|
use Core\Listener;
|
|
|
|
use Core\Tool;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Base Listener
|
|
|
|
*
|
|
|
|
* @package event
|
|
|
|
* @author Frederic Guillot
|
|
|
|
*
|
|
|
|
* @property \Model\Comment $comment
|
|
|
|
* @property \Model\Project $project
|
|
|
|
* @property \Model\ProjectActivity $projectActivity
|
|
|
|
* @property \Model\SubTask $subTask
|
|
|
|
* @property \Model\Task $task
|
|
|
|
* @property \Model\TaskFinder $taskFinder
|
|
|
|
*/
|
|
|
|
abstract class Base implements Listener
|
|
|
|
{
|
|
|
|
/**
|
2014-12-22 19:15:38 +01:00
|
|
|
* Container instance
|
2014-11-23 20:13:38 +01:00
|
|
|
*
|
|
|
|
* @access protected
|
2014-12-22 19:15:38 +01:00
|
|
|
* @var \Pimple\Container
|
2014-11-23 20:13:38 +01:00
|
|
|
*/
|
2014-12-22 19:15:38 +01:00
|
|
|
protected $container;
|
2014-11-23 20:13:38 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Constructor
|
|
|
|
*
|
|
|
|
* @access public
|
2014-12-22 19:15:38 +01:00
|
|
|
* @param \Pimple\Container $container
|
2014-11-23 20:13:38 +01:00
|
|
|
*/
|
2014-12-22 19:15:38 +01:00
|
|
|
public function __construct(Container $container)
|
2014-11-23 20:13:38 +01:00
|
|
|
{
|
2014-12-22 19:15:38 +01:00
|
|
|
$this->container = $container;
|
2014-11-23 20:13:38 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Return class information
|
|
|
|
*
|
|
|
|
* @access public
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
public function __toString()
|
|
|
|
{
|
|
|
|
return get_called_class();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Load automatically models
|
|
|
|
*
|
|
|
|
* @access public
|
|
|
|
* @param string $name Model name
|
|
|
|
* @return mixed
|
|
|
|
*/
|
|
|
|
public function __get($name)
|
|
|
|
{
|
2014-12-22 19:15:38 +01:00
|
|
|
return Tool::loadModel($this->container, $name);
|
2014-11-23 20:13:38 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get event namespace
|
|
|
|
*
|
|
|
|
* Event = task.close | Namespace = task
|
|
|
|
*
|
|
|
|
* @access public
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
public function getEventNamespace()
|
|
|
|
{
|
2014-12-22 19:15:38 +01:00
|
|
|
$event_name = $this->container['event']->getLastTriggeredEvent();
|
2014-11-23 20:13:38 +01:00
|
|
|
return substr($event_name, 0, strpos($event_name, '.'));
|
|
|
|
}
|
|
|
|
}
|