/m2-callable-event-listeners

Listen to events with plain PHP callable minus any configuration

Primary LanguagePHPMIT LicenseMIT

Magento 2 Callable Event Listeners

Allow to register event listeners with a plain PHP callable - minus the config.

Installation

$ composer require trash-panda/m2-callable-event-listeners
$ php bin/magento setup:upgrade

Usage

Grab an instance of \TrashPanda\CallableEventListeners\Model\Manager either via DI or from the object manager and pass an event name and a callable to the listen method.

use TrashPanda\CallableEventListeners\Model\Manager;
use Magento\Framework\Event\Observer;

class MyCommand
{
    public function ___construct(Manager $manager)
    {
        $manager->listen('some-event', function (Observer $observer) {
            echo "Hey!\n\n";
            var_dump($observer->getData());
        });
    }
}

Now when the event some-event is dispatched from \Magento\Framework\Event\Manager your callable will be invoked along with any other listeners attached via config.

Use Cases

  • Scoping events to one particular code path - eg a command or a cron
  • Prototyping
  • Improved feedback from IDE - regarding classes and method existence