コード例 #1
0
 /**
  * @group DDC-1439
  */
 public function testInvalidToOneJoinColumnSchema()
 {
     $class1 = $this->em->getClassMetadata(__NAMESPACE__ . '\\InvalidEntity1');
     $class2 = $this->em->getClassMetadata(__NAMESPACE__ . '\\InvalidEntity2');
     $ce = $this->validator->validateClass($class2);
     $this->assertEquals(array("The referenced column name 'id' does not have a corresponding field with this column name on the class 'Doctrine\\Tests\\ORM\\Tools\\InvalidEntity1'.", "The join columns of the association 'assoc' have to match to ALL identifier columns of the source entity 'Doctrine\\Tests\\ORM\\Tools\\InvalidEntity2', however 'key3, key4' are missing."), $ce);
 }
コード例 #2
0
 /**
  * @dataProvider dataValidateModelSets
  */
 public function testValidateModelSets($modelSet)
 {
     $validator = new SchemaValidator($this->_em);
     $classes = array();
     foreach (self::$_modelSets[$modelSet] as $className) {
         $classes[] = $this->_em->getClassMetadata($className);
     }
     foreach ($classes as $class) {
         $ce = $validator->validateClass($class);
         $this->assertEquals(0, count($ce), "Invalid Modelset: " . $modelSet . " class " . $class->name . ": " . implode("\n", $ce));
     }
 }
コード例 #3
0
 /**
  * @dataProvider dataValidateModelSets
  */
 public function testValidateModelSets($modelSet)
 {
     $validator = new SchemaValidator($this->_em);
     $classes = array();
     foreach (self::$_modelSets[$modelSet] as $className) {
         $classes[] = $this->_em->getClassMetadata($className);
     }
     foreach ($classes as $class) {
         $ce = $validator->validateClass($class);
         foreach ($ce as $key => $error) {
             if (strpos($error, "must be private or protected. Public fields may break lazy-loading.") !== false) {
                 unset($ce[$key]);
             }
         }
         $this->assertEquals(0, count($ce), "Invalid Modelset: " . $modelSet . " class " . $class->name . ": " . implode("\n", $ce));
     }
 }
コード例 #4
0
 /**
  * {@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;
 }
コード例 #5
0
 /**
  * {@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;
 }
コード例 #6
0
 /**
  * @group DDC-3322
  */
 public function testInvalidOrderByAssociationInverseSide()
 {
     $class = $this->em->getClassMetadata(__NAMESPACE__ . '\\DDC3322Three');
     $ce = $this->validator->validateClass($class);
     $this->assertEquals(array("The association Doctrine\\Tests\\ORM\\Tools\\DDC3322Three#invalidAssoc is ordered by a field oneToOneInverse " . "on Doctrine\\Tests\\ORM\\Tools\\DDC3322ValidEntity1 that is the inverse side of an association."), $ce);
 }
コード例 #7
0
ファイル: DoctrinePlugin.php プロジェクト: jjaferson/ourives
 /**
  * Método que valida se o mapeamento de uma classe específica
  * está coerente com a sua tabela correspondente
  * @param string $nome FQCN da classe
  * @return boolean
  */
 public function validarClasse($nome)
 {
     $sv = new SchemaValidator($this->em);
     return $sv->validateClass($this->em->getClassMetadata($nome));
 }
コード例 #8
0
 /**
  * {@inheritdoc}
  */
 public function collect(Request $request, Response $response, \Exception $exception = null)
 {
     $queries = array();
     foreach ($this->loggers as $name => $logger) {
         $queries[$name] = $this->sanitizeQueries($name, $logger->queries);
     }
     $this->data = array('queries' => $queries, 'connections' => $this->connections, 'managers' => $this->managers);
     $errors = array();
     $entities = array();
     $entities['default'] = array();
     /** @var $factory \Doctrine\ORM\Mapping\ClassMetadataFactory */
     $factory = $this->container->get('em')->getMetadataFactory();
     $validator = new SchemaValidator($this->container->get('em'));
     /** @var $class \Doctrine\ORM\Mapping\ClassMetadataInfo */
     foreach ($factory->getLoadedMetadata() as $class) {
         $entities['default'][] = $class->getName();
         $classErrors = $validator->validateClass($class);
         if (!empty($classErrors)) {
             $errors['default'][$class->getName()] = $classErrors;
         }
     }
     $this->data['entities'] = $entities;
     $this->data['errors'] = $errors;
 }
コード例 #9
0
 /**
  * @group DDC-1649
  */
 public function testInvalidTripleAssociationAsKeyMapping()
 {
     $classThree = $this->em->getClassMetadata(__NAMESPACE__ . '\\DDC1649Three');
     $ce = $this->validator->validateClass($classThree);
     $this->assertEquals(array("Cannot map association 'Doctrine\\Tests\\ORM\\Tools\\DDC1649Three#two as identifier, because the target entity 'Doctrine\\Tests\\ORM\\Tools\\DDC1649Two' also maps an association as identifier.", "The referenced column name 'id' has to be a primary key column on the target entity class 'Doctrine\\Tests\\ORM\\Tools\\DDC1649Two'."), $ce);
 }