事件 yii\base\Event
2019-08-23 18:03:39 4 举报
AI智能生成
Yii2 事件
作者其他创作
大纲/内容
public $name
public $sender
public $handled = false
public $data
private static $_events = []
static::on($class, $name, $handler, $data = null, $append = true)
self::$_events[$name][$class][] = [$handler, $data]
array_unshift(self::$_events[$name][$class], [$handler, $data])
static::off($class, $name, $handler = null)
unset(self::$_events[$name][$class])
foreach (self::$_events[$name][$class] as $i => $event)
unset(self::$_events[$name][$class][$i])
self::$_events[$name][$class] = array_values(self::$_events[$name][$class])
static::offAll()
self::$_events = []
static::hasHandlers($class, $name)
$classes = array_merge(
[$class],
class_parents($class, true),
class_implements($class, true)
)
[$class],
class_parents($class, true),
class_implements($class, true)
)
foreach ($classes as $class)
!empty(self::$_events[$name][$class])
static::trigger($class, $name, $event = null)
$event = new static
$event->handled = false
$event->name = $name
$event->sender = $class
$classes = array_merge(
[$class],
class_parents($class, true),
class_implements($class, true)
)
[$class],
class_parents($class, true),
class_implements($class, true)
)
foreach ($classes as $class)
foreach (self::$_events[$name][$class] as $handler)
$event->data = $handler[1]
call_user_func($handler[0], $event)
0 条评论
下一页