コード例 #1
0
ファイル: events.php プロジェクト: sphido/events
/**
 * Ensure that something will be handled
 *
 * @param string $event
 * @param callable $listener
 * @return mixed
 */
function ensure($event, callable $listener = null)
{
    if ($listener) {
        on($event, $listener, 0);
    }
    // register default listener
    if ($listeners = listeners($event)) {
        return call_user_func_array(end($listeners), array_slice(func_get_args(), 2));
    }
}
コード例 #2
0
 /**
  * Returns a list of all registered shortcodes.
  *
  * @return array
  */
 protected static function _list()
 {
     if (empty(static::$_listeners)) {
         $manager = EventDispatcher::instance('Shortcode')->eventManager();
         static::$_listeners = listeners($manager);
     }
     return static::$_listeners;
 }
コード例 #3
0
ファイル: events.php プロジェクト: ngsoft/events
/**
 * Pass variable with all filters.
 *
 * @param $event
 * @param null $value
 * @return mixed|null
 */
function filter($event, $value = null)
{
    $args = func_get_args();
    $event = array_shift($args);
    foreach ((array) listeners($event) as $listener) {
        $args[0] = $value;
        $value = call_user_func_array($listener, $args);
    }
    return $value;
}