From 83a94586531981804ae56d64ba9d6948d6afb64d Mon Sep 17 00:00:00 2001 From: "Fabio B. Silva" Date: Fri, 23 Dec 2011 12:28:09 -0200 Subject: [PATCH] apply naming strategy on ClassMetadata --- lib/Doctrine/ORM/Mapping/ClassMetadata.php | 11 +++++++---- lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php | 4 +++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/Doctrine/ORM/Mapping/ClassMetadata.php b/lib/Doctrine/ORM/Mapping/ClassMetadata.php index a5b983fbb..a2e50d536 100644 --- a/lib/Doctrine/ORM/Mapping/ClassMetadata.php +++ b/lib/Doctrine/ORM/Mapping/ClassMetadata.php @@ -21,7 +21,8 @@ namespace Doctrine\ORM\Mapping; use ReflectionClass, ReflectionProperty; use Doctrine\Common\Persistence\Mapping\ClassMetadata AS IClassMetadata; - +use Doctrine\ORM\DefaultNamingStrategy; +use Doctrine\ORM\NamingStrategy; /** * A ClassMetadata instance holds all the object-relational mapping metadata * of an entity and it's associations. @@ -61,13 +62,15 @@ class ClassMetadata extends ClassMetadataInfo implements IClassMetadata * metadata of the class with the given name. * * @param string $entityName The name of the entity class the new instance is used for. + * @param NamingStrategy $namingStrategy */ - public function __construct($entityName) + public function __construct($entityName, NamingStrategy $namingStrategy = null) { + $namingStrategy = $namingStrategy ?: new DefaultNamingStrategy(); $this->reflClass = new ReflectionClass($entityName); $this->namespace = $this->reflClass->getNamespaceName(); - $this->table['name'] = $this->reflClass->getShortName(); - parent::__construct($this->reflClass->getName()); // do not use $entityName, possible case-problems + $this->table['name'] = $namingStrategy->classToTableName($this->reflClass->getShortName()); + parent::__construct($this->reflClass->getName(),$namingStrategy); // do not use $entityName, possible case-problems } /** diff --git a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php index fc1477fc8..7a845e754 100644 --- a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php +++ b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php @@ -21,6 +21,8 @@ namespace Doctrine\ORM\Mapping; use Doctrine\DBAL\Types\Type; use ReflectionClass; +use Doctrine\ORM\DefaultNamingStrategy; +use Doctrine\ORM\NamingStrategy; /** * A ClassMetadata instance holds all the object-relational mapping metadata @@ -512,7 +514,7 @@ class ClassMetadataInfo { $this->name = $entityName; $this->rootEntityName = $entityName; - $this->namingStrategy = $namingStrategy ?: new \Doctrine\ORM\DefaultNamingStrategy(); + $this->namingStrategy = $namingStrategy ?: new DefaultNamingStrategy(); } /**