日期:2014-05-16 浏览次数:20834 次
<?php
if (!defined("__IS_ROOT")) die("Access Denied");
global $EventStack;
//闭包函数(回调)
$fGetSettings = function($oSettingDaemon) {
//处理回调返回的系统设置数据模型
echo $oSettingDaemon;
};
//请求数据原型
$EventStack->addEvent(
"DATA_REQUEST",
serialize(array(
array(
"request" => "settingDaemon"
)
)),
$fGetSettings,
null
);
?>
<?php
//事件堆栈处理组件
/*数
*/
//已知的事件戳记
/*
*/
if (!defined("__IS_ROOT")) die("Access Denied");
class EventStack extends Init{
private $_aWatcherRegistry = array();//已注册的观察者列表
private $_aEventStack = array();//事件堆栈
private $_aCallbackRegistry = array();//已注册的回调函数
function __construct() {
}
function __destruct() {
//将关键信息存储至数据源的Log表
//根据调试开关,决定是否输出调试信息至页面
}
function __toString() {
}
##A##
public function addEvent($sStamp = "ISSUE_TRACK", $sValue, $fHandler = null, $mScope = null) {
/*sStamp: 此条消息的戳记
*sValue: 序列化的数组
* fHandler(function): 匿名回调函数
* mScope(mixed type): 回调函数的上下文环境,
* null表示传入的handler函数是一个全局函数,
* 字符串类型表示传入的handler函数是scope类的静态函数,
* 对象类型表示传入的scope是一个对象,handler函数是对象的一个方法
*/
$this->_aEventStack[] = array(
"stamp" => $sStamp,
"value" => $sValue,
"handler" => $fHandler,
"scope" => $mScope,
"timestamp" => time()