Exemplo n.º 1
0
 public static function setEventCollection(EventManagerInterface $events = null)
 {
     parent::setEventCollection($events);
     $sharedManager = StaticEventManager::getInstance();
     static::$events->setSharedManager($sharedManager);
     static::$events->setIdentifiers(array(__CLASS__, get_called_class(), 'dots'));
 }
Exemplo n.º 2
0
 public function onBootstrap(MvcEvent $e)
 {
     $serviceLocator = $e->getApplication()->getServiceManager();
     GlobalEventManager::attach(EVENT_LOG_ERROR, function (Event $event) use($serviceLocator) {
         $message = Encoder::encode($event->getParams());
         $serviceLocator->get('LogMongodbService')->addRecord(Logger::ERROR, $message, array());
         return true;
     });
     GlobalEventManager::attach(EVENT_LOG_DEBUG, function (Event $event) use($serviceLocator) {
         $message = Encoder::encode($event->getParams());
         $serviceLocator->get('LogMongodbService')->addRecord(Logger::DEBUG, $message, array());
         return true;
     });
 }
Exemplo n.º 3
0
 public function testProxiesAllStaticOperationsToEventCollectionInstance()
 {
     $test = new \stdClass();
     $listener = GlobalEventManager::attach('foo.bar', function ($e) use($test) {
         $test->event = $e->getName();
         $test->target = $e->getTarget();
         $test->params = $e->getParams();
         return $test->params;
     });
     $this->assertInstanceOf('Zend\\Stdlib\\CallbackHandler', $listener);
     GlobalEventManager::trigger('foo.bar', $this, array('foo' => 'bar'));
     $this->assertSame($this, $test->target);
     $this->assertEquals('foo.bar', $test->event);
     $this->assertEquals(array('foo' => 'bar'), $test->params);
     $results = GlobalEventManager::triggerUntil('foo.bar', $this, array('baz' => 'bat'), function ($r) {
         return is_array($r);
     });
     $this->assertTrue($results->stopped());
     $this->assertEquals(array('baz' => 'bat'), $test->params);
     $this->assertEquals(array('baz' => 'bat'), $results->last());
     $events = GlobalEventManager::getEvents();
     $this->assertEquals(array('foo.bar'), $events);
     $listeners = GlobalEventManager::getListeners('foo.bar');
     $this->assertEquals(1, count($listeners));
     $this->assertTrue($listeners->contains($listener));
     GlobalEventManager::detach($listener);
     $events = GlobalEventManager::getEvents();
     $this->assertEquals(array(), $events);
     $listener = GlobalEventManager::attach('foo.bar', function ($e) use($test) {
         $test->event = $e->getEvent();
         $test->target = $e->getTarget();
         $test->params = $e->getParams();
     });
     $events = GlobalEventManager::getEvents();
     $this->assertEquals(array('foo.bar'), $events);
     GlobalEventManager::clearListeners('foo.bar');
     $events = GlobalEventManager::getEvents();
     $this->assertEquals(array(), $events);
 }
Exemplo n.º 4
0
 /**
  * 打印最后一个错误信息
  */
 private function debug()
 {
     if ($this->_db instanceof \MongoDB) {
         $err = $this->_db->lastError();
         // 在浏览器中输出错误信息以便发现问题
         if (self::debug) {
             fb($err, \FirePHP::LOG);
         } else {
             if ($err['err'] != null) {
                 GlobalEventManager::trigger('logError', null, array(json_encode($err)));
             }
         }
     }
 }