public function testCollect()
 {
     $c = new MessagesCollector();
     $c->addMessage('foo');
     $data = $c->collect();
     $this->assertEquals(1, $data['count']);
     $this->assertEquals($c->getMessages(), $data['messages']);
 }
 /**
  * @param string $message
  * @param string $type
  */
 public static function log($message, $type = 'debug')
 {
     if (self::$messageCollector instanceof MessagesCollector) {
         self::$messageCollector->addMessage($message, $type);
     } else {
         throw new Exception('Unknown type of MessageCollector');
     }
 }
 /**
  * @throws \DebugBar\DebugBarException
  */
 public function boot()
 {
     $debugbar = $this->app['debugbar'];
     if ($debugbar instanceof LaravelDebugbar && $debugbar->isEnabled()) {
         /**
          * CodeCollector获取代码提交和版本信息
          */
         $codeCollector = new MessagesCollector('code');
         $codeCollector->addMessage('enviroment:' . $this->app->environment());
         //package "sebastian/version": "1.*"  required
         if (class_exists(Version::class)) {
             $version = static::appVersion($this->app['config']->get('app.version'));
             $codeCollector->addMessage('base path:' . base_path());
             $codeCollector->addMessage("version:\n" . $version);
         }
         if (class_exists(Repository::class)) {
             $repository = new \Gitonomy\Git\Repository(base_path());
             $head = $repository->getHeadCommit();
             $log = $head->getLog(null, null, 5);
             $commits = array();
             foreach ($log->getCommits() as $commit) {
                 $commits[] = $this->commitMessageArray($commit);
             }
             $codeCollector->addMessage("current commit:\n" . $head->getRevision(), 'HEAD');
             $codeCollector->addMessage($commits, 'git-log');
         }
         $debugbar->addCollector($codeCollector);
         /**
          * ServerCollector获取服务器信息
          */
         $serverCollector = new MessagesCollector('sever');
         $serverCollector->addMessage(php_uname(), 'uname');
         $serverCollector->addMessage("sapi_name:" . php_sapi_name(), 'phpinfo');
         $serverCollector->addMessage("PHP version:" . PHP_VERSION, 'phpinfo');
         $serverCollector->addMessage("Zend_Version:" . zend_version(), 'phpinfo');
         $serverCollector->addMessage(sys_getloadavg(), 'load');
         $debugbar->addCollector($serverCollector);
     }
 }
 /**
  * @param array $event
  */
 protected function doWrite(array $event)
 {
     $priority = $this->priorityMap($event['priorityName']);
     $this->messagesCollector->addMessage($event['message'], $priority);
 }