public function setUp() { // Store original autoloaders $this->loaders = spl_autoload_functions(); if (!is_array($this->loaders)) { // spl_autoload_functions does not return empty array when no // autoloaders registered... $this->loaders = array(); } // Store original include_path $this->includePath = get_include_path(); $autoloader = new ModuleAutoloader(array(dirname(__DIR__) . '/TestAsset')); $autoloader->register(); $this->sharedEvents = new SharedEventManager(); $this->moduleManager = new ModuleManager(array('ListenerTestModule')); $this->moduleManager->getEventManager()->setSharedManager($this->sharedEvents); $this->moduleManager->getEventManager()->attach('loadModule.resolve', new ModuleResolverListener(), 1000); $this->application = new MockApplication(); $events = new EventManager(array('Zend\\Mvc\\Application', 'ZendTest\\Module\\TestAsset\\MockApplication', 'application')); $events->setSharedManager($this->sharedEvents); $this->application->setEventManager($events); $this->serviceManager = new ServiceManager(); $this->serviceManager->setService('ModuleManager', $this->moduleManager); $this->application->setServiceManager($this->serviceManager); }
/** * Create an instance of EventManagerProxy * * @param ServiceLocatorInterface $serviceLocator * * @return EventManagerProxy */ public function createService(ServiceLocatorInterface $serviceLocator) { $proxy = new EventManagerProxy(); $em = new EventManager(); $em->setSharedManager($serviceLocator->get('SharedEventManager')); $proxy->setEventManager($em); return $proxy; }
public function testAttach() { $sharedEvents = new SharedEventManager(); $events = new EventManager(); $events->setSharedManager($sharedEvents); $listener = new AccessListener(); $listener->attach($events); $this->assertCount(1, $sharedEvents->getListeners('SporkTools', MvcEvent::EVENT_DISPATCH)); }
public function setUp() { $this->module = new Module(); $this->app = $this->getMockBuilder('Zend\\Mvc\\Application')->disableOriginalConstructor()->getMock(); $sm = new ServiceManager(new Config(['services' => ['translator' => Translator::factory(['locale' => 'id_ID'])]])); $this->app->expects($this->any())->method('getServiceManager')->willReturn($sm); $em = new EventManager(); $em->setSharedManager(new SharedEventManager()); $this->app->expects($this->any())->method('getEventManager')->willReturn($em); }
public function marshalEventManager() { $r = new ReflectionClass(EventManager::class); if ($r->hasMethod('setSharedManager')) { $eventManager = new EventManager(); $eventManager->setSharedManager(new SharedEventManager()); return $eventManager; } return new EventManager(new SharedEventManager()); }
public function testCanAttachListeners() { $mockListener = $this->getMock('EventLogger\\Log\\Listener\\LogListener'); $serviceManager = new ServiceManager(); $serviceManager->setService('EventLogger\\Log\\Listener\\AppListener', $mockListener); $serviceManager->setService('EventLogger\\Log\\Listener\\DispatchErrorListener', $mockListener); $eventManager = new EventManager(); $eventManager->setSharedManager(new SharedEventManager()); $listenerAggregate = new ListenerAggregate($serviceManager); $listenerAggregate->attach($eventManager); }
public function setUp() { $this->module = new Module(); $app = $this->prophesize('Zend\\Mvc\\Application'); $sm = new ServiceManager(new Config(['services' => ['translator' => Translator::factory(['locale' => 'id_ID'])]])); $app->getServiceManager()->willReturn($sm); $em = new EventManager(); $em->setSharedManager(new SharedEventManager()); $app->getEventManager()->willReturn($em); $this->app = $app->reveal(); }
/** * Create an EventManager instance * * Creates a new EventManager instance, seeding it with a shared instance * of SharedEventManager. * * @param ServiceLocatorInterface $serviceLocator * @return EventManager * @throws ServiceNotFoundException */ public function createService(ServiceLocatorInterface $serviceLocator) { if ($serviceLocator instanceof AbstractPluginManager) { $serviceLocator = $serviceLocator->getServiceLocator(); } /** @var SharedEventManagerInterface $sharedEventManager */ $sharedEventManager = $serviceLocator->get('SharedEventManager'); $em = new EventManager(); $em->setSharedManager($sharedEventManager); return $em; }
/** * Create an EventManager instance * * Creates a new EventManager instance, seeding it with a shared instance * of SharedEventManager. * * @param ServiceLocatorInterface $serviceLocator * @return EventManager */ public function createService(ServiceLocatorInterface $serviceLocator) { static $sharedEventManager = null; if (!$sharedEventManager) { $sharedEventManager = new SharedEventManager(); } $em = new EventManager(); $em->setSharedManager($sharedEventManager); return $em; }
/** * Create and return an EventManager composing the shared event manager instance. * * @return EventManager */ private function createEventManager() { $r = new \ReflectionClass(EventManager::class); if ($r->hasMethod('setSharedManager')) { // zend-eventmanager v2 initialization $eventManager = new EventManager(); $eventManager->setSharedManager($this->sharedEventManager); return $eventManager; } // zend-eventmanager v3 initialization return new EventManager($this->sharedEventManager); }
/** * Create an EventManager instance * * Creates a new EventManager instance, seeding it with a shared instance * of SharedEventManager. * * @param ContainerInterface $container * @param string $name * @param null|array $options * @return EventManager */ public function __invoke(ContainerInterface $container, $name, array $options = null) { if ($this->acceptsSharedManagerToConstructor()) { // zend-eventmanager v3 return new EventManager($container->has('SharedEventManager') ? $container->get('SharedEventManager') : null); } // zend-eventmanager v2 $events = new EventManager(); if ($container->has('SharedEventManager')) { $events->setSharedManager($container->get('SharedEventManager')); } return $events; }
/** * @param ContainerInterface $container * * @return EventManager */ protected function createEventManager(ContainerInterface $container) { if ($this->acceptsSharedManagerToConstructor()) { // zend-eventmanager v3 return new EventManager($container->has('SharedEventManager') ? $container->get('SharedEventManager') : null); } // zend-eventmanager v2 $events = new EventManager(); if ($container->has('SharedEventManager')) { $events->setSharedManager($container->get('SharedEventManager')); } return $events; }
protected function setUp() { $module = new Module(); $events = new EventManager(); $sharedEvents = new SharedEventManager(); $events->setSharedManager($sharedEvents); $plugins = new ControllerPluginManager(); $this->serviceManager = new ServiceManager(); $this->serviceManager->setService('Zend\\ServiceManager\\ServiceLocatorInterface', $this->serviceManager); $this->serviceManager->setService('EventManager', $events); $this->serviceManager->setService('SharedEventManager', $sharedEvents); $this->serviceManager->setService('ControllerPluginManager', $plugins); $this->controllerManager = new ControllerManager(new Config($module->getControllerConfig())); $this->controllerManager->setServiceLocator($this->serviceManager); $this->controllerManager->addPeeringServiceManager($this->serviceManager); }
public function testEventListenerIsAttached() { $module = new Module(); $mvcEvent = $this->getMock('Zend\\EventManager\\EventInterface'); $application = $this->getMock('Zend\\Mvc\\Application', [], [], '', false); $eventManager = new EventManager(); $eventManager->setSharedManager(new SharedEventManager()); $serviceManager = new ServiceManager(); $mvcEvent->expects($this->once())->method('getParam')->with('application')->will($this->returnValue($application)); $application->expects($this->once())->method('getEventManager')->will($this->returnValue($eventManager)); $application->expects($this->once())->method('getServiceManager')->will($this->returnValue($serviceManager)); $eventManager->addIdentifiers(['ZfcUser\\Service\\User']); $event = new Event(); $event->setName('register.post'); $userRegistrationService = $this->getMock('HtUserRegistration\\Service\\UserRegistrationServiceInterface'); $serviceManager->setService('HtUserRegistration\\UserRegistrationService', $userRegistrationService); $userRegistrationService->expects($this->once())->method('onUserRegistration')->with($event); $module->onBootstrap($mvcEvent); $eventManager->trigger($event); }
public function setUp() { $this->loaders = spl_autoload_functions(); if (!is_array($this->loaders)) { // spl_autoload_functions does not return empty array when no // autoloaders registered... $this->loaders = array(); } // Store original include_path $this->includePath = get_include_path(); $autoloader = new ModuleAutoloader(array(dirname(__DIR__) . '/TestAsset')); $autoloader->register(); $sharedEvents = new SharedEventManager(); $this->moduleManager = new ModuleManager(array()); $this->moduleManager->getEventManager()->setSharedManager($sharedEvents); $this->moduleManager->getEventManager()->attach(ModuleEvent::EVENT_LOAD_MODULE_RESOLVE, new ModuleResolverListener(), 1000); $this->moduleManager->getEventManager()->attach(ModuleEvent::EVENT_LOAD_MODULE, new OnBootstrapListener(), 1000); $this->application = new MockApplication(); $events = new EventManager(array('Zend\\Mvc\\Application', 'ZendTest\\Module\\TestAsset\\MockApplication', 'application')); $events->setSharedManager($sharedEvents); $this->application->setEventManager($events); }
/** * Create and return an event manager instance. * * Ensures that the returned event manager has a shared manager * composed. * * @return EventManager */ private function createEventManager() { $r = new ReflectionClass(EventManager::class); if ($r->hasMethod('setSharedManager')) { $events = new EventManager(); $events->setSharedManager(new SharedEventManager()); } else { $events = new EventManager(new SharedEventManager()); } $this->setEventManager($events); return $events; }
public function index10Action() { $shareEventManager = new SharedEventManager(); //Giống abstract $shareEventManager->attach("emOne", "eventOne", function ($e) { echo "<h3 style='color:red;font-weight:bold'>eventManagerOne - eventOne - Do 1</h3>"; }); $shareEventManager->attach(array("emTwo", "emThree"), "eventNew", function ($e) { echo "<h3 style='color:red;font-weight:bold'>eventManagerOne - eventNew - Do 1</h3>"; }); $eventManager = new EventManager(array("emOne", "emThree")); $eventManager->setSharedManager($shareEventManager); $eventManager->trigger("eventOne"); $eventManager->trigger("eventNew"); $eventManager = new EventManager("emTwo"); $eventManager->setSharedManager($shareEventManager); $eventManager->trigger("eventNew"); return false; }
public function testCanProvideAlternateEventManagerToDisableDefaultRouteAndDispatchEventListeners() { $app = $this->setupActionController(); $events = new EventManager(); $sharedEvents = new SharedEventManager(); $events->setSharedManager($sharedEvents); $app->setEventManager($events); $listener1 = function ($e) { $response = $e->getResponse(); $content = $response->getContent(); $content = empty($content) ? 'listener1' : $content . '::' . 'listener1'; $response->setContent($content); }; $listener2 = function ($e) { $response = $e->getResponse(); $content = $response->getContent(); $content = empty($content) ? 'listener2' : $content . '::' . 'listener2'; $response->setContent($content); }; $sharedEvents->attach('ZendTest\\Mvc\\Controller\\TestAsset\\SampleController', 'dispatch', $listener1, 10); $sharedEvents->attach('ZendTest\\Mvc\\Controller\\TestAsset\\SampleController', 'dispatch', $listener2, -10); $app->run(); $response = $app->getResponse(); $content = $response->getContent(); $this->assertNotContains('listener1', $content); $this->assertNotContains('listener2', $content); }
public function testTriggersRenderErrorEventInCaseOfRenderingException() { $resolver = new TemplateMapResolver(); $resolver->add('exception', __DIR__ . '/_files/exception.phtml'); $this->renderer->setResolver($resolver); $strategy = new PhpRendererStrategy($this->renderer); $this->view->getEventManager()->attach($strategy); $model = new ViewModel(); $model->setTemplate('exception'); $this->event->setViewModel($model); $services = new ServiceManager(); $services->setService('Request', $this->request); $services->setService('Response', $this->response); $services->setInvokableClass('SharedEventManager', 'Zend\\EventManager\\SharedEventManager'); $services->setFactory('EventManager', function ($services) { $sharedEvents = $services->get('SharedEventManager'); $events = new EventManager(); $events->setSharedManager($sharedEvents); return $events; }, false); $application = new Application(array(), $services); $this->event->setApplication($application); $test = (object) array('flag' => false); $application->getEventManager()->attach(MvcEvent::EVENT_RENDER_ERROR, function ($e) use($test) { $test->flag = true; $test->error = $e->getError(); $test->exception = $e->getParam('exception'); }); $this->strategy->render($this->event); $this->assertTrue($test->flag); $this->assertEquals(Application::ERROR_EXCEPTION, $test->error); $this->assertInstanceOf('Exception', $test->exception); $this->assertContains('script', $test->exception->getMessage()); }
public function testListenersAttachedToAnyIdentifierProvidedToEventManagerWillBeTriggered() { $identifiers = array('foo', 'bar'); $events = StaticEventManager::getInstance(); $manager = new EventManager($identifiers); $manager->setSharedManager($events); $test = new \stdClass(); $test->triggered = 0; $events->attach('foo', 'bar', function ($e) use($test) { $test->triggered++; }); $events->attach('bar', 'bar', function ($e) use($test) { $test->triggered++; }); $manager->trigger('bar', $this, array()); $this->assertEquals(2, $test->triggered); }
public function testPassingIdentifierToConstructorAllowsListeningOnThatIdentifier() { $controller = new ResourceController('MyNamespace\\Controller\\Foo'); $events = new EventManager(); $sharedEvents = new SharedEventManager(); $events->setSharedManager($sharedEvents); $controller->setEventManager($events); $test = new stdClass(); $test->flag = false; $sharedEvents->attach('MyNamespace\\Controller\\Foo', 'test', function ($e) use($test) { $test->flag = true; }); $events->trigger('test', $controller, array()); $this->assertTrue($test->flag); }