Example #1
0
 /**
  * @param string $name
  * @param string $databaseName
  *
  * @return Client
  */
 public function getClient(string $name, string $databaseName = null) : Client
 {
     $clientKey = !is_null($databaseName) ? $name . '.' . $databaseName : $name;
     if (!isset($this->clients[$clientKey])) {
         $conf = $this->configurations[$name];
         $uri = sprintf('mongodb://%s:%d', $conf->getHost(), $conf->getPort());
         $options = array_merge(['database' => $databaseName], $conf->getOptions());
         $this->clients[$clientKey] = $this->buildClient($uri, $options, []);
         $this->logger->addConnection($clientKey);
     }
     return $this->clients[$clientKey];
 }
 /**
  * {@inheritdoc}
  */
 public function collect(Request $request, Response $response, \Exception $exception = null)
 {
     while ($this->logger->hasLoggedEvents()) {
         /** @var LogEvent $event */
         $event = $this->logger->getLoggedEvent();
         // with extension version under 1.2.0 some Mongo objects can't be automatically serialized
         if (-1 === version_compare(phpversion('mongodb'), '1.2.0')) {
             MongoLogEventSerializer::serialize($event);
         }
         $this->data[self::QUERY_KEYWORD][] = $event;
         $this->data[self::TIME_KEYWORD] += $event->getExecutionTime();
     }
     $this->data[self::CONNECTION_KEYWORD] = $this->logger->getConnections();
 }
Example #3
0
 /**
  * @param string $method
  * @param array|object  $filters
  * @param array|object  $data
  * @param array  $options
  *
  * @return LogEvent
  */
 private function startQueryLogging(string $method, $filters = null, $data = null, array $options) : LogEvent
 {
     $debugInfo = $this->__debugInfo();
     $event = new LogEvent();
     $event->setFilters($filters);
     $event->setData($data);
     $event->setOptions($options);
     $event->setMethod($method);
     $event->setCollection($debugInfo['collectionName']);
     $this->logger->startLogging($event);
     return $event;
 }