Popularity
1.9
Declining
Activity
0.0
Stable
5
29
3

Programming language: PHP
License: MIT License
Tags: Framework Extras    
Latest version: v2.1.1

Knp RAD Components alternatives and similar libraries

Based on the "Framework Extras" category.
Alternatively, view Knp RAD Components alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Knp RAD Components or a related project?

Add another 'Framework Extras' Library

README

Knp Rad Domain Event

Build Status Scrutinizer Code Quality Latest Stable Version Total Downloads Latest Unstable Version License

A lightweight domain event pattern implementation for Doctrine2.

Official maintainers:

Installation

With composer :

$ composer require knplabs/rad-domain-event

If you are using Symfony you can update your app/AppKernel.php file:

public function registerBundles()
{
    $bundles = array(
        // bundles here ...
        new Knp\Rad\DomainEvent\Bundle\DomainEventBundle();
    );
}

Usage

Setup your entity

First, make sure your entity implements the [Provider](./src/Knp/Rad/DomainEvent/Provider.php) interface and uses the [ProviderTrait](./src/Knp/Rad/DomainEvent/ProviderTrait.php).

use Knp\Rad\DomainEvent;

class MyEntity implements DomainEvent\Provider
{
    use DomainEvent\ProviderTrait;
}

Raise event

Trigger any event from your entity, through the raise method. It will be turned into a [Knp\Rad\DomainEvent\Event](./src/Knp/Rad/DomainEvent/Event.php) object and dispatched once your entity has been flushed.

use Knp\Rad\DomainEvent;

class MyEntity implements DomainEvent\Provider
{
    // ...
    public function myFunction($arg) {
        // your function behavior
        $this->raise('myEventName', ['anyKey' => $anyValue]);
    }
}

Listen to this event

use Knp\Rad\DomainEvent\Event;

class MyListener
{
    public function onMyEventName(Event $event) {
        // your function behavior     
    }
}

Then, of course, register your listener.

app.event_listener.my_event_listener:
    class: App\EventListener\MyEventListener
    tags:
        - { name: kernel.event_listener, event: myEventName, method: 'onMyEventName' }


*Note that all licence references and agreements mentioned in the Knp RAD Components README section above are relevant to that project's source code only.