/** * {@inheritdoc} */ public function collect(Request $request, Response $response, \Exception $exception = null) { parent::collect($request, $response, $exception); $errors = array(); $entities = array(); foreach ($this->registry->getManagers() as $name => $em) { $entities[$name] = array(); /** @var $factory \Doctrine\ORM\Mapping\ClassMetadataFactory */ $factory = $em->getMetadataFactory(); $validator = new SchemaValidator($em); /** @var $class \Doctrine\ORM\Mapping\ClassMetadataInfo */ foreach ($factory->getLoadedMetadata() as $class) { $entities[$name][] = $class->getName(); $classErrors = $validator->validateClass($class); if (!empty($classErrors)) { $errors[$name][$class->getName()] = $classErrors; } } } $this->data['entities'] = $entities; $this->data['errors'] = $errors; }
/** * {@inheritdoc} */ public function collect(Request $request, Response $response, \Exception $exception = null) { parent::collect($request, $response, $exception); $errors = array(); $entities = array(); $caches = array('enabled' => false, 'log_enabled' => false, 'counts' => array('puts' => 0, 'hits' => 0, 'misses' => 0), 'regions' => array('puts' => array(), 'hits' => array(), 'misses' => array())); foreach ($this->registry->getManagers() as $name => $em) { $entities[$name] = array(); /** @var $factory \Doctrine\ORM\Mapping\ClassMetadataFactory */ $factory = $em->getMetadataFactory(); $validator = new SchemaValidator($em); /** @var $class \Doctrine\ORM\Mapping\ClassMetadataInfo */ foreach ($factory->getLoadedMetadata() as $class) { $entities[$name][] = $class->getName(); $classErrors = $validator->validateClass($class); if (!empty($classErrors)) { $errors[$name][$class->getName()] = $classErrors; } } if (version_compare(\Doctrine\ORM\Version::VERSION, '2.5.0-DEV') < 0) { continue; } /** @var $emConfig \Doctrine\ORM\Configuration */ $emConfig = $em->getConfiguration(); $slcEnabled = $emConfig->isSecondLevelCacheEnabled(); if (!$slcEnabled) { continue; } $caches['enabled'] = true; /** @var $cacheConfiguration \Doctrine\ORM\Cache\CacheConfiguration */ /** @var $clacheLoggerChain \Doctrine\ORM\Cache\Logging\CacheLoggerChain */ $cacheConfiguration = $emConfig->getSecondLevelCacheConfiguration(); $cacheLoggerChain = $cacheConfiguration->getCacheLogger(); if (!$cacheLoggerChain || !$cacheLoggerChain->getLogger('statistics')) { continue; } /** @var $cacheLoggerStats \Doctrine\ORM\Cache\Logging\StatisticsCacheLogger */ $cacheLoggerStats = $cacheLoggerChain->getLogger('statistics'); $caches['log_enabled'] = true; $caches['counts']['puts'] += $cacheLoggerStats->getPutCount(); $caches['counts']['hits'] += $cacheLoggerStats->getHitCount(); $caches['counts']['misses'] += $cacheLoggerStats->getMissCount(); foreach ($cacheLoggerStats->getRegionsPut() as $key => $value) { if (!isset($caches['regions']['puts'][$key])) { $caches['regions']['puts'][$key] = 0; } $caches['regions']['puts'][$key] += $value; } foreach ($cacheLoggerStats->getRegionsHit() as $key => $value) { if (!isset($caches['regions']['hits'][$key])) { $caches['regions']['hits'][$key] = 0; } $caches['regions']['hits'][$key] += $value; } foreach ($cacheLoggerStats->getRegionsMiss() as $key => $value) { if (!isset($caches['regions']['misses'][$key])) { $caches['regions']['misses'][$key] = 0; } $caches['regions']['misses'][$key] += $value; } } $this->data['entities'] = $entities; $this->data['errors'] = $errors; $this->data['caches'] = $caches; }
private function createCollector($queries) { $connection = $this->getMockBuilder('Doctrine\\DBAL\\Connection')->disableOriginalConstructor()->getMock(); $connection->expects($this->any())->method('getDatabasePlatform')->will($this->returnValue(new MySqlPlatform())); $registry = $this->getMock('Doctrine\\Common\\Persistence\\ManagerRegistry'); $registry->expects($this->any())->method('getConnectionNames')->will($this->returnValue(array('default' => 'doctrine.dbal.default_connection'))); $registry->expects($this->any())->method('getManagerNames')->will($this->returnValue(array('default' => 'doctrine.orm.default_entity_manager'))); $registry->expects($this->any())->method('getConnection')->will($this->returnValue($connection)); $logger = $this->getMock('Doctrine\\DBAL\\Logging\\DebugStack'); $logger->queries = $queries; $collector = new DoctrineDataCollector($registry); $collector->addLogger('default', $logger); return $collector; }