PHP Olaylar.

6 Cevap php

Ben C # dünyasından geliyorum ve biraz PHP kodlama yapmaya başladı, bu yüzden PHP olayları kullanmak mümkün olup olmadığını merak ediyorum, ya da bir sonraki sürümde bu özelliği eklemek için planlanan eğer. Eğer this farklı simüle etmek için bir yol varsa, çok, teşekkürler duyacağız.

6 Cevap

C # PHP gibi ama hiçbir olay haberdar olmak için Observer Pattern takmak için temsilci uygulayabilirsiniz.

Prado PHP Framework C # arazi gelen ve muhtemelen ASP.NET özellikle bu yana, size hitap edebilir bir olay güdümlü çerçevedir.

Quick Start bir göz atın. Özellikle, Kontrol Referans altında koduna bir göz atın. Eğer bakmak ve sizin için ne arıyor gibi bir şey olup olmadığını görmek için kod örnekleri bol miktarda vardır.

Stubbles oldukça güzel bir Event Dispatcher vardır.

SPL - Standard PHP Library içerir SplObserver ve PHP gözlemci deseni uygulamak için SplSubject arayüzleri

Ben de Prado öneririm.

PHP dersim olay işleme gibi bir şey oluşturabilirsiniz:

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);
        }
    }
}

This code was taken from here http://setahost.com/php-events-singletone-and-factory-pattern-application/ There is also good example of modular and sub modular application using this class .