龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

一个基于PHP的事件机制

时间:2014-07-22 14:52来源: 作者: 点击:
分享到:
一个基于PHP的事件机制
一个基于PHP的事件机制
<?php
//EventUtils:

final class EventArgs { 
}

interface EventHandler { 
public function Invoke($Sender, EventArgs $E); 
}

class Event { 
private $EventHandlerList = array ();

public function AddEventHandler(EventHandler $EventHandler) { 
   $this->EventHandlerList[] = $EventHandler; 
}

public function DeleteEventHandler(EventHandler $EventHandler) { 
   $Index = array_search($EventHandler, $this->EventHanlerList); 
   array_splice($this->EventHanlerList, $Index, 1); 
} 

public function Invoke($Sender, EventArgs $E) { 
   foreach ($this->EventHandlerList as $EventHandler) { 
    $EventHandler->Invoke($Sender, $E); 
   } 
}

}

//Test Case:

class TestEventHandler implements EventHandler { 
public function Invoke($Sender, EventArgs $E) { 
   // echo "Hello, ".$Sender; 
} 
}

TestEvent();

function TestEvent() { 
   $Event = new Event(); 
   $EventHandler = new TestEventHandler(); 
   $Event->AddEventHandler($EventHandler); 
   $Event->Invoke($Event, new EventArgs()); 
}

//Output:

//Hello, Object id #5ok.

?>
精彩图集

赞助商链接