當前位置: 首頁>>代碼示例>>PHP>>正文


PHP EventManager::dispatch方法代碼示例

本文整理匯總了PHP中Cake\Event\EventManager::dispatch方法的典型用法代碼示例。如果您正苦於以下問題:PHP EventManager::dispatch方法的具體用法?PHP EventManager::dispatch怎麽用?PHP EventManager::dispatch使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Cake\Event\EventManager的用法示例。


在下文中一共展示了EventManager::dispatch方法的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: trigger

 /**
  * {@inheritDoc}
  */
 public function trigger(EventInterface $event)
 {
     if ($event instanceof BaseCakeEvent) {
         $this->eventManager->dispatch($event);
     }
     return $this;
 }
開發者ID:amir20202000,項目名稱:penny,代碼行數:10,代碼來源:CakeEvmProxy.php

示例2: getLoader

 /**
  * Create the template loader.
  *
  * @return \Twig_LoaderInterface
  */
 protected function getLoader()
 {
     $event = new Event('TwigView.TwigView.loader', $this, ['loader' => new Loader()]);
     $this->eventManager->dispatch($event);
     if (isset($event->result['loader'])) {
         return $event->result['loader'];
     }
     return $event->data['loader'];
 }
開發者ID:Adnan0703,項目名稱:TwigView,代碼行數:14,代碼來源:TwigView.php

示例3: triggerArray

 /**
  * Similar to "trigger()" but this method expects that data is given as an
  * associative array instead of function arguments.
  *
  * ### Usage:
  *
  * ```php
  * EventDispatcher::instance()->triggerArray('myEvent', [$data1, $data2]);
  * ```
  *
  * Which is equivalent to:
  *
  * ```php
  * EventDispatcher::instance()->trigger('myEvent', $data1, $data2);
  * ```
  *
  * @param array|string $eventName The event name to trigger
  * @param array $data Information to be passed to event listener
  * @return \Cake\Event\Event The event object that was triggered
  */
 public function triggerArray($eventName, array $data = [])
 {
     $event = $this->_prepareEvent($eventName, $data);
     $this->_log($event->name());
     $this->_eventManager->dispatch($event);
     return $event;
 }
開發者ID:quickapps-plugins,項目名稱:cms,代碼行數:27,代碼來源:EventDispatcher.php

示例4: trigger

 /**
  * Triggers a Crud event by creating a new subject and filling it with $data
  * if $data is an instance of CrudSubject it will be reused as the subject
  * object for this event.
  *
  * If Event listeners return a CakeResponse object, the this method will throw an
  * exception and fill a 'response' property on it with a reference to the response
  * object.
  *
  * @param string $eventName Event name
  * @param \Crud\Event\Subject $data Event data
  * @throws Exception if any event listener return a CakeResponse object.
  * @return \Cake\Event\Event
  */
 public function trigger($eventName, Subject $data = null)
 {
     $eventName = $this->_config['eventPrefix'] . '.' . $eventName;
     $Subject = $data ?: $this->getSubject();
     $Subject->addEvent($eventName);
     if (!empty($this->_config['eventLogging'])) {
         $this->logEvent($eventName, $data);
     }
     $Event = new Event($eventName, $Subject);
     $this->_eventManager->dispatch($Event);
     if ($Event->result instanceof Response) {
         $Exception = new Exception();
         $Exception->response = $Event->result;
         throw $Exception;
     }
     return $Event;
 }
開發者ID:i3i2ain,項目名稱:crud,代碼行數:31,代碼來源:CrudComponent.php

示例5: testDispatchWithGlobalAndLocalEvents

 /**
  * Test that events are dispatched properly when there are global and local
  * listeners at the same priority.
  *
  * @return void
  */
 public function testDispatchWithGlobalAndLocalEvents()
 {
     $listener = new CustomTestEventListener();
     EventManager::instance()->attach($listener);
     $listener2 = new EventTestListener();
     $manager = new EventManager();
     $manager->attach(array($listener2, 'listenerFunction'), 'fake.event');
     $manager->dispatch(new Event('fake.event', $this));
     $this->assertEquals(array('listenerFunction'), $listener->callStack);
     $this->assertEquals(array('listenerFunction'), $listener2->callStack);
 }
開發者ID:ripzappa0924,項目名稱:carte0.0.1,代碼行數:17,代碼來源:EventManagerTest.php

示例6: getLoader

 /**
  * Create the template loader.
  *
  * @return \Twig_LoaderInterface
  */
 protected function getLoader()
 {
     $event = LoaderEvent::create(new Loader());
     $this->eventManager->dispatch($event);
     return $event->getResultLoader();
 }
開發者ID:mario-bros,項目名稱:TwigView,代碼行數:11,代碼來源:TwigView.php

示例7: dispatch

 public function dispatch($event)
 {
     $this->_log[] = ['name' => $event->name(), 'subject' => $event->subject()];
     parent::dispatch($event);
 }
開發者ID:kristiyandobrev,項目名稱:crud,代碼行數:5,代碼來源:CrudComponentTest.php

示例8: testGetDispatchedEvents

 /**
  * Test getting a list of dispatched events from the manager.
  *
  * @return void
  * @triggers my_event $this
  * @triggers my_second_event $this
  */
 public function testGetDispatchedEvents()
 {
     $eventList = new EventList();
     $event = new Event('my_event', $this);
     $event2 = new Event('my_second_event', $this);
     $manager = new EventManager();
     $manager->setEventList($eventList);
     $manager->dispatch($event);
     $manager->dispatch($event2);
     $result = $manager->getEventList();
     $this->assertInstanceOf('\\Cake\\Event\\EventList', $result);
     $this->assertCount(2, $result);
     $this->assertEquals($result[0], $event);
     $this->assertEquals($result[1], $event2);
     $manager->getEventList()->flush();
     $result = $manager->getEventList();
     $this->assertCount(0, $result);
     $manager->unsetEventList();
     $manager->dispatch($event);
     $manager->dispatch($event2);
     $result = $manager->getEventList();
     $this->assertNull($result);
 }
開發者ID:rashmi,項目名稱:newrepo,代碼行數:30,代碼來源:EventManagerTest.php

示例9: testEventFired

 /**
  * tests assertEventFired
  *
  * @return void
  */
 public function testEventFired()
 {
     $manager = EventManager::instance();
     $manager->setEventList(new EventList());
     $manager->trackEvents(true);
     $event = new Event('my.event');
     $manager->dispatch($event);
     $this->assertEventFired('my.event');
     $manager = new EventManager();
     $manager->setEventList(new EventList());
     $manager->trackEvents(true);
     $event = new Event('my.event');
     $manager->dispatch($event);
     $this->assertEventFired('my.event', $manager);
 }
開發者ID:rashmi,項目名稱:newrepo,代碼行數:20,代碼來源:TestCaseTest.php


注:本文中的Cake\Event\EventManager::dispatch方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。