Merge branch 'EntityGenerator'
This commit is contained in:
commit
180dbbad8b
@ -313,6 +313,31 @@ class ClassMetadataFactory implements ClassMetadataFactoryInterface
|
|||||||
$this->evm->dispatchEvent(Events::loadClassMetadata, $eventArgs);
|
$this->evm->dispatchEvent(Events::loadClassMetadata, $eventArgs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->validateRuntimeMetadata($class, $parent);
|
||||||
|
|
||||||
|
$this->loadedMetadata[$className] = $class;
|
||||||
|
|
||||||
|
$parent = $class;
|
||||||
|
|
||||||
|
if ( ! $class->isMappedSuperclass) {
|
||||||
|
$rootEntityFound = true;
|
||||||
|
array_unshift($visited, $className);
|
||||||
|
}
|
||||||
|
|
||||||
|
$loaded[] = $className;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $loaded;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate runtime metadata is correctly defined.
|
||||||
|
*
|
||||||
|
* @param ClassMetadata $class
|
||||||
|
* @param ClassMetadata $parent
|
||||||
|
*/
|
||||||
|
protected function validateRuntimeMetadata($class, $parent)
|
||||||
|
{
|
||||||
// Verify & complete identifier mapping
|
// Verify & complete identifier mapping
|
||||||
if ( ! $class->identifier && ! $class->isMappedSuperclass) {
|
if ( ! $class->identifier && ! $class->isMappedSuperclass) {
|
||||||
throw MappingException::identifierRequired($className);
|
throw MappingException::identifierRequired($className);
|
||||||
@ -335,20 +360,6 @@ class ClassMetadataFactory implements ClassMetadataFactoryInterface
|
|||||||
// second condition is necessary for mapped superclasses in the middle of an inheritance hierachy
|
// second condition is necessary for mapped superclasses in the middle of an inheritance hierachy
|
||||||
throw MappingException::noInheritanceOnMappedSuperClass($class->name);
|
throw MappingException::noInheritanceOnMappedSuperClass($class->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->loadedMetadata[$className] = $class;
|
|
||||||
|
|
||||||
$parent = $class;
|
|
||||||
|
|
||||||
if ( ! $class->isMappedSuperclass) {
|
|
||||||
$rootEntityFound = true;
|
|
||||||
array_unshift($visited, $className);
|
|
||||||
}
|
|
||||||
|
|
||||||
$loaded[] = $className;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $loaded;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -52,6 +52,17 @@ class DisconnectedClassMetadataFactory extends ClassMetadataFactory
|
|||||||
return $metadata;
|
return $metadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate runtime metadata is correctly defined.
|
||||||
|
*
|
||||||
|
* @param ClassMetadata $class
|
||||||
|
* @param ClassMetadata $parent
|
||||||
|
*/
|
||||||
|
protected function validateRuntimeMetadata($class, $parent)
|
||||||
|
{
|
||||||
|
// validate nothing
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @override
|
* @override
|
||||||
*/
|
*/
|
||||||
|
@ -438,7 +438,7 @@ public function <methodName>()
|
|||||||
|
|
||||||
if ($inClass) {
|
if ($inClass) {
|
||||||
$inClass = false;
|
$inClass = false;
|
||||||
$lastSeenClass = $lastSeenNamespace . '\\' . $token[1];
|
$lastSeenClass = $lastSeenNamespace . ($lastSeenNamespace ? '\\' : '') . $token[1];
|
||||||
$this->_staticReflection[$lastSeenClass]['properties'] = array();
|
$this->_staticReflection[$lastSeenClass]['properties'] = array();
|
||||||
$this->_staticReflection[$lastSeenClass]['methods'] = array();
|
$this->_staticReflection[$lastSeenClass]['methods'] = array();
|
||||||
}
|
}
|
||||||
@ -686,7 +686,13 @@ public function <methodName>()
|
|||||||
|
|
||||||
private function _generateEntityStubMethod(ClassMetadataInfo $metadata, $type, $fieldName, $typeHint = null)
|
private function _generateEntityStubMethod(ClassMetadataInfo $metadata, $type, $fieldName, $typeHint = null)
|
||||||
{
|
{
|
||||||
|
if ($type == "add") {
|
||||||
|
$addMethod = explode("\\", $typeHint);
|
||||||
|
$addMethod = end($addMethod);
|
||||||
|
$methodName = $type . $addMethod;
|
||||||
|
} else {
|
||||||
$methodName = $type . Inflector::classify($fieldName);
|
$methodName = $type . Inflector::classify($fieldName);
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->_hasMethod($methodName, $metadata)) {
|
if ($this->_hasMethod($methodName, $metadata)) {
|
||||||
return;
|
return;
|
||||||
|
@ -98,7 +98,7 @@ class EntityGeneratorTest extends \Doctrine\Tests\OrmTestCase
|
|||||||
$this->assertTrue(method_exists($metadata->namespace . '\EntityGeneratorBook', 'setAuthor'), "EntityGeneratorBook::setAuthor() missing.");
|
$this->assertTrue(method_exists($metadata->namespace . '\EntityGeneratorBook', 'setAuthor'), "EntityGeneratorBook::setAuthor() missing.");
|
||||||
$this->assertTrue(method_exists($metadata->namespace . '\EntityGeneratorBook', 'getAuthor'), "EntityGeneratorBook::getAuthor() missing.");
|
$this->assertTrue(method_exists($metadata->namespace . '\EntityGeneratorBook', 'getAuthor'), "EntityGeneratorBook::getAuthor() missing.");
|
||||||
$this->assertTrue(method_exists($metadata->namespace . '\EntityGeneratorBook', 'getComments'), "EntityGeneratorBook::getComments() missing.");
|
$this->assertTrue(method_exists($metadata->namespace . '\EntityGeneratorBook', 'getComments'), "EntityGeneratorBook::getComments() missing.");
|
||||||
$this->assertTrue(method_exists($metadata->namespace . '\EntityGeneratorBook', 'addComments'), "EntityGeneratorBook::addComments() missing.");
|
$this->assertTrue(method_exists($metadata->namespace . '\EntityGeneratorBook', 'addEntityGeneratorComment'), "EntityGeneratorBook::addEntityGeneratorComment() missing.");
|
||||||
|
|
||||||
$this->assertEquals('published', $book->getStatus());
|
$this->assertEquals('published', $book->getStatus());
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ class EntityGeneratorTest extends \Doctrine\Tests\OrmTestCase
|
|||||||
$this->assertEquals($author, $book->getAuthor());
|
$this->assertEquals($author, $book->getAuthor());
|
||||||
|
|
||||||
$comment = new EntityGeneratorComment();
|
$comment = new EntityGeneratorComment();
|
||||||
$book->addComments($comment);
|
$book->addEntityGeneratorComment($comment);
|
||||||
$this->assertInstanceOf('Doctrine\Common\Collections\ArrayCollection', $book->getComments());
|
$this->assertInstanceOf('Doctrine\Common\Collections\ArrayCollection', $book->getComments());
|
||||||
$this->assertEquals(new \Doctrine\Common\Collections\ArrayCollection(array($comment)), $book->getComments());
|
$this->assertEquals(new \Doctrine\Common\Collections\ArrayCollection(array($comment)), $book->getComments());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user