Allow to register event listeners with a plain PHP callable - minus the config.
$ composer require trash-panda/m2-callable-event-listeners
$ php bin/magento setup:upgrade
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.
- Scoping events to one particular code path - eg a command or a cron
- Prototyping
- Improved feedback from IDE - regarding classes and method existence