Esempio n. 1
0
 /**
  * Command handler
  * 
  * @param   string      The command name
  * @param   object      The command context
  * @return  boolean     Always returns true
  */
 public function execute($name, KCommandContext $context)
 {
     $type = '';
     if ($context->caller) {
         $identifier = clone $context->caller->getIdentifier();
         if ($identifier->path) {
             $type = array_shift($identifier->path);
         } else {
             $type = $identifier->name;
         }
     }
     $parts = explode('.', $name);
     $event = 'on' . ucfirst(array_shift($parts)) . ucfirst($type) . KInflector::implode($parts);
     $this->_dispatcher->dispatchEvent($event, clone $context);
     return true;
 }
Esempio n. 2
0
 /**
  * Remove an event listener
  *
  * @param   string  The event name
  * @param   object  An object implementing the KObjectHandlable interface
  * @return  KObject  The mixer object
  */
 public function removeEventDispatcher($subscriber)
 {
     if (!$subscriber instanceof KEventSubscriberInterface) {
         $subscriber = $this->getEventSubscriber($subscriber, $config);
     }
     $this->_event_dispatcher->removeEventSubscriber($subscriber);
     return $this->getMixer();
 }
Esempio n. 3
0
 /**
  * Disconnect from an event dispatcher
  * 
  * @param  object	The event dispatcher to disconnect from
  * @return KEventListener
  */
 public function disconnect(KEventDispatcher $dispatcher)
 {
     $handlers = $this->getEventHandlers();
     foreach ($handlers as $handler) {
         $dispatcher->removeEventListener($handler, $this);
     }
     return $this;
 }
Esempio n. 4
0
 /**
  * Remove an event listener
  *
  * @param   string  The event name
  * @param   object  An object implementing the KObjectHandlable interface
  * @return  KObject  The mixer object
  */
 public function removeEventListener($event, KObjectHandable $listener)
 {
     $this->_event_dispatcher->removeEventListener($event, $listener, $priority);
     return $this->_mixer;
 }
Esempio n. 5
0
	/**
     * Dispatches an event by dispatching arguments to all listeners that handle
     * the event and returning their return values.
     * 
     * This function will add a mark to the profiler for each event dispatched
     *
     * @param   string  The event name
     * @param   object|array   An array, a KConfig or a KEvent object 
     * @return  KEventDispatcher
     */
    public function dispatchEvent($name, $event = array())
    {
        $this->_events[] = array(
        	'message' => $name,
            'time'    => $this->getElapsedTime(),
            'memory'  => $this->getMemory(),
            'caller'  => $event->caller->getIdentifier()
        );  
        
        return parent::dispatchEvent($name, $event);
    }
Esempio n. 6
0
 /**
  * Registers event dispatcher.
  *
  * @param KEventDispatcher $dispatcher Event dispatche
  */
 public function registerEventDispatcher(KEventDispatcher $dispatcher)
 {
     $dispatcher->addEventSubscriber($this);
 }