खोज…


वाक्य - विन्यास

  • $ डिस्पैचर-> डिस्पैच (स्ट्रिंग $ ईवेंटनाम, ईवेंट $ ईवेंट);
  • $ डिस्पैचर-> addListener (स्ट्रिंग $ इवेंटनाम, कॉल करने योग्य $ श्रोता, इंट $ प्राथमिकता = 0);
  • $ डिस्पैचर-> addSubscriber (EventSubscriberInterface $ ग्राहक);

टिप्पणियों

  • अपने आवेदन में EventDispatcher के एक भी उदाहरण का उपयोग करना सबसे अच्छा है कि आप उन वस्तुओं में इंजेक्ट करें जिन्हें घटनाओं की आग लगने की आवश्यकता है।
  • जहाँ आप अपने कॉन्फ़िगरेशन का प्रबंधन करते हैं, और अपने इवेंटडायरेक्टर में इवेंट श्रोताओं को जोड़ने के लिए एकल स्थान रखना सबसे अच्छा अभ्यास है। सिम्फनी फ्रेमवर्क डिपेंडेंसी इंजेक्शन कंटेनर का उपयोग करता है।
  • ये पैटर्न आपको किसी भी मॉड्यूल के कोड को बदलने की आवश्यकता के बिना अपने ईवेंट श्रोताओं को आसानी से बदलने की अनुमति देगा जो घटनाओं को भेज रहा है।
  • ईवेंट श्रोता कॉन्फ़िगरेशन से ईवेंट प्रेषण का डिकूपिंग वही है जो सिम्फनी EventDispatcher को इतना शक्तिशाली बनाता है
  • EventDispatcher आपको ओपन / बंद सिद्धांत को संतुष्ट करने में मदद करता है।

इवेंट डिस्पैचर क्विक स्टार्ट

use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\EventDispatcher\GenericEvent;

// you may store this in a dependency injection container for use as a service
$dispatcher = new EventDispatcher();

// you can attach listeners to specific events directly with any callable
$dispatcher->addListener('an.event.occurred', function(Event $event) {
    // process $event
});

// somewhere in your system, an event happens
$data = // some important object
$event = new GenericEvent($data, ['more' => 'event information']);

// dispatch the event
// our listener on "an.event.occurred" above will be called with $event
// we could attach many more listeners to this event, and they too would be called
$dispatcher->dispatch('an.event.occurred', $event);

घटना के सदस्य

use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\EventDispatcher\Event;

$dispatcher = new EventDispatcher();

// you can attach event subscribers, which allow a single object to subscribe 
// to many events at once
$dispatcher->addSubscriber(new class implements EventSubscriberInterface {
    public static function getSubscribedEvents()
    {
        // here we subscribe our class methods to listen to various events
        return [
            // when anything fires a "an.event.occurred" call "onEventOccurred"
            'an.event.occurred' => 'onEventOccurred',
            // an array of listeners subscribes multiple methods to one event
            'another.event.happened' => ['whenAnotherHappened', 'sendEmail'],
        ];
    }

    function onEventOccurred(Event $event) {
        // process $event
    }

    function whenAnotherHappened(Event $event) {
        // process $event
    }

    function sendEmail(Event $event) {
        // process $event
    }
});


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow