イベント監視の実装方法は、jQueryのイベントバインディングの考え方に基づいたシンプルな実装です。
主な機能:
1. イベントのバインドは、1 つのイベントへの複数のアクションのバインドをサポートし、ワンタイム イベントのバインドをサポートします
3. ログアウト イベント
コードは次のとおりです: クラス イベント
{
protected static $listens = array();
public static function listen($event, $callback, $once=false){
if(!is_callable($callback)) return false; ::$ listens[$event][] = array('callback'=>$callback, 'once'=>$once);を通じて、を通じて、を通じて、を通じて、を通じて、を通じてスルー スルー オーバー スルー スルー スルー スルー スルー スルー スルー スルー スルー スルー - - to -listeners[$event][] - - array('callback'=>$callback, 'once'=>$once) ; return self::listen($event, $callback, true);
}
public static function Remove($event, $index=null){
if(is_null($index))
unset(self::$) [$event]) を聞きます
‐ ’ s ’ s ‐ ‐ ‐‐‐ $args = func_get_args()
$event = array_shift($args); if(!isset(self::$listens[$event); ])) false を返します
foreach((array) self::$listens[$event] as $index=>$listen){
y($call戻る、$ args);
}}}}
以下は呼び出しの一部です:
コードをコピーします
コードは次のようになります:
// モニタリングウォークイベントを追加します
Event :: Listen ('Walk', Function (){
echo "私は歩いています.. .n";
});
// walk に 1 回限りのリスニング イベントを追加
Event::listen('walk', function(){
echo "I am listen.. .n";
}, true) ;
// walk イベントをトリガーします
Event::trigger('walk');
/*
私は歩いています...
私は聞いています...
*/
Event::trigger('walk'); /* 私は歩いています... */
Event::one('say', function($name=''){
echo "私は {$name} n";
});
Event::trigger('say', 'deeka'); // 出力 私は deeka です
Event::trigger('say', 'deeka') // 実行されません
クラス Foo {{
パブリック関数バー() {
echo "foo :: bar () が呼び出されます"; json_encode(func_get_args())."n"
}
}
$foo = new Foo('bar', array($foo, 'bar'));
イベント::トリガー ('バー');
イベント::リッスン('テスト', 配列($foo, 'テスト')); 'test', 1, 2, 3);
class Bar
{
public static function foo(){
echo "Bar::foo() が呼び出されます"
}
}
Event::listen(' bar1', array('Bar', 'foo'));
イベント::trigger('bar1')
Event::listen('bar2', 'Bar::foo'); ('bar2');
function bar(){
echo " bar() が呼び出されます"
Event::listen('bar3', 'bar'); );
http://www.bkjia.com/PHPjc/825088.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/825088.html技術記事イベント監視の実装方法は、jQueryのイベントバインディングの考え方に基づいたシンプルな実装です。 主な機能: 1. イベントのバインドは、1 つのイベントをサポートして複数のアクションをバインドし、ワンタイム バインディングをサポートします...