From 01d6a61a9038697097f4b521ac8aafafa81420cd Mon Sep 17 00:00:00 2001 From: jwage Date: Tue, 29 Sep 2009 15:54:16 +0000 Subject: [PATCH] [2.0] Fixes for some strict standards notices and other various things --- lib/Doctrine/ORM/Mapping/ClassMetadata.php | 2 +- .../ORM/Mapping/ClassMetadataFactory.php | 12 +++++-- .../ORM/Mapping/Driver/YamlDriver.php | 33 ++++++++++--------- lib/Doctrine/ORM/Tools/SchemaTool.php | 2 +- 4 files changed, 29 insertions(+), 20 deletions(-) diff --git a/lib/Doctrine/ORM/Mapping/ClassMetadata.php b/lib/Doctrine/ORM/Mapping/ClassMetadata.php index a0bf2ea82..1e3d0faca 100644 --- a/lib/Doctrine/ORM/Mapping/ClassMetadata.php +++ b/lib/Doctrine/ORM/Mapping/ClassMetadata.php @@ -358,7 +358,7 @@ final class ClassMetadata * * @var array */ - public $reflFields; + public $reflFields = array(); /** * The ID generator used for generating IDs for this class. diff --git a/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php b/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php index 38cd6f693..e0ef2e40f 100644 --- a/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php +++ b/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php @@ -201,8 +201,12 @@ class ClassMetadataFactory } else if ($parent->isIdGeneratorTable()) { $class->getTableGeneratorDefinition($parent->getTableGeneratorDefinition()); } - $class->setIdGeneratorType($parent->generatorType); - $class->setIdGenerator($parent->getIdGenerator()); + if ($generatorType = $parent->generatorType) { + $class->setIdGeneratorType($generatorType); + } + if ($idGenerator = $parent->getIdGenerator()) { + $class->setIdGenerator($idGenerator); + } } else { $this->_completeIdGeneratorMapping($class); } @@ -218,7 +222,9 @@ class ClassMetadataFactory $this->_evm->dispatchEvent(Events::loadClassMetadata, $eventArgs); } - $this->_generateStaticSql($class); + if ( ! $class->isMappedSuperclass) { + $this->_generateStaticSql($class); + } $this->_loadedMetadata[$className] = $class; diff --git a/lib/Doctrine/ORM/Mapping/Driver/YamlDriver.php b/lib/Doctrine/ORM/Mapping/Driver/YamlDriver.php index 8248ee370..de62940d9 100644 --- a/lib/Doctrine/ORM/Mapping/Driver/YamlDriver.php +++ b/lib/Doctrine/ORM/Mapping/Driver/YamlDriver.php @@ -22,7 +22,8 @@ namespace Doctrine\ORM\Mapping\Driver; use Doctrine\ORM\Mapping\ClassMetadata, - Doctrine\Common\DoctrineException; + Doctrine\Common\DoctrineException, + Doctrine\ORM\Mapping\MappingException; if ( ! class_exists('sfYaml', false)) { require_once __DIR__ . '/../../../../vendor/sfYaml/sfYaml.class.php'; @@ -152,23 +153,25 @@ class YamlDriver extends AbstractFileDriver } } - // Evaluate identifier settings - foreach ($element['id'] as $name => $idElement) { - $mapping = array( - 'id' => true, - 'fieldName' => $name, - 'type' => $idElement['type'] - ); + if (isset($element['id'])) { + // Evaluate identifier settings + foreach ($element['id'] as $name => $idElement) { + $mapping = array( + 'id' => true, + 'fieldName' => $name, + 'type' => $idElement['type'] + ); - if (isset($idElement['column'])) { - $mapping['columnName'] = $idElement['column']; - } + if (isset($idElement['column'])) { + $mapping['columnName'] = $idElement['column']; + } - $metadata->mapField($mapping); + $metadata->mapField($mapping); - if (isset($idElement['generator'])) { - $metadata->setIdGeneratorType(constant('Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_' - . $idElement['generator']['strategy'])); + if (isset($idElement['generator'])) { + $metadata->setIdGeneratorType(constant('Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_' + . strtoupper($idElement['generator']['strategy']))); + } } } diff --git a/lib/Doctrine/ORM/Tools/SchemaTool.php b/lib/Doctrine/ORM/Tools/SchemaTool.php index 4db3337d1..f27700cbc 100644 --- a/lib/Doctrine/ORM/Tools/SchemaTool.php +++ b/lib/Doctrine/ORM/Tools/SchemaTool.php @@ -86,7 +86,7 @@ class SchemaTool $sequences = array(); // Sequence SQL statements. Appended to $sql at the end. foreach ($classes as $class) { - if (isset($processedClasses[$class->name])) { + if (isset($processedClasses[$class->name]) || $class->isMappedSuperclass) { continue; }