* * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace EasyWeChat\Kernel\Providers; use Pimple\Container; use Pimple\ServiceProviderInterface; use Symfony\Component\EventDispatcher\EventDispatcher; /** * Class EventDispatcherServiceProvider. * * @author mingyoung */ class EventDispatcherServiceProvider implements ServiceProviderInterface { /** * Registers services on the given container. * * This method should only be used to configure services and parameters. * It should not get services. * * @param Container $pimple A container instance */ public function register(Container $pimple) { !isset($pimple['events']) && $pimple['events'] = function ($app) { $dispatcher = new EventDispatcher(); foreach ($app->config->get('events.listen', []) as $event => $listeners) { foreach ($listeners as $listener) { $dispatcher->addListener($event, $listener); } } return $dispatcher; }; } }