我来自C#世界并且刚开始做一些PHP编码,所以我想知道是否可以在PHP上使用事件,或者是否计划在将来的版本中包含此功能。如果您有办法模拟它,不同于this,我们将非常感谢,谢谢。
答案 0 :(得分:4)
在PHP中没有像C#这样的事件,但您可以实现Observer Pattern来附加委托以获得通知。
答案 1 :(得分:2)
Prado PHP Framework是一个事件驱动的框架,可能会吸引你,特别是因为你来自C#并且可能是ASP.NET。
看看Quick Start。具体来说,请查看Control Reference下的代码。有很多代码示例供您查看,看看它是否与您要查找的内容类似。
答案 2 :(得分:1)
Stubbles非常好Event Dispatcher。
答案 3 :(得分:1)
SPL - Standard PHP Library提供SplObserver和SplSubject接口,用于在PHP中实现观察者模式
答案 4 :(得分:1)
我也建议普拉多。
答案 5 :(得分:0)
您可以在PHP中创建类似事件处理类的内容:
class Event {
protected $_eventCallbacks = array();
function addEventCallback($callback) {
$this->_eventCallbacks[$callback] = $callback;
}
function removeEventCallback($callback){
if(isset($this->_eventCallbacks[$callback])){
unset ($this->_eventCallbacks[$callback]);
}
}
function cleanEventCallback(){
foreach ($this->_eventCallbacks as $callback) {
unset ($callback);
}
}
function fireEvent() {
foreach ($this->_eventCallbacks as $callback) {
call_user_func($callback);
}
}
}
此代码来自此处http://setahost.com/php-events-singletone-and-factory-pattern-application/ 使用此类还有模块化和子模块化应用程序的良好示例。