PHP 事件機制 2

2022-10-06 05:39:11 字數 2371 閱讀 1187

複製** **如下:

php

class event extends stdclass

/**

* 得到事件字串程式設計客棧

*/ public function __tostring()

} abstract class eventdispatcherelse

return true;

} /**

* 派發事件

* @param event $event

* @param string $method

* @param string||object $class

* @return void

*/ public function dispatch(event $event)else

}else

} }

} /**

* 刪除事件

* @param event $event

* @param string $method

* @param string $class

* @return boolean true

*/ public function det

} return true;

}else

} return true;

} }

/**

* 檢測事件是否監聽

* @param event $event

* @param string $method

* @param s程式設計客棧tring $class

* @return boolean

*/ public function has($event,$method,$class=null)else

if(is_object($class))else

$temp_v=array(

"class"=>$v_class,

"method"=>$method,

); $temp_s=array(

"class"=>$s_class,

"method"=>$method,

); if($temp_v==$temp_s)

} }

}else

} }

} return false;

} /**

* 檢測指定類是否存在指定方法

* @param string $class

* @param string $method

* @exception exception_event

* @return void

*/ private function _check_method($class,$method)

} /**

* 檢測指定函式是否存在

* @param string $function

* @return void

*/ private function _check_function($function)

} /**

* 檢測指定事件是否存在監聽函式

* @param string $eventstr

* @return boolean

*/ private function _check_callback($eventstr)

return false;

} /**

* 建立監聽函式陣列

* @param string $eventstr

* @param string $function

* @return array

*/ private function _create_listener_fn($eventstr,$function)

/**

* 建立監聽類陣列

* @param string $eventstr

* @param string $class

* @param string $method

* @return array

*/ private function _create_listener_method($eventstr,$class,$method)

} class myevent extends event

class ball extends eventdispatcher

} class mytest

public function kk($e)

} trycatch (exception $e)

本文標題: php 事件機制(2)

本文位址:

Flex事件機制 2

event類方法 1 實用程式方法 clone event formattostring classname string,parameters string tostring string 2 事件流方法 stopimmediatepropagation void stoppropagation ...

PHP實現事件機制例項分析

內建了事件機制的語言不多,php也沒有提供這種功能。事件 event 說簡單了就是乙個observer模式。實現起來非常easy。可是有所不同的是,事件的監聽者誰都能夠加,可是僅僅能由直接包括它的物件觸發。這就有一點點難度了。php有乙個debug backtrace函式,能夠得到當前的呼叫棧,由此...

cocos2dx事件分發機制

事件型別 enum class type 事件 型別 enum class type 關於事件 的優先權通過 addeventlistenerwithscenegraphpriority 新增的 優先權為0。通過 addeventlistenerwithfixedpriority 新增的 可以自定義...