1
0
mirror of synced 2025-01-18 06:21:40 +03:00

DDC-1477 - Adjust patch to really fix bug in Proxy generation

This commit is contained in:
Benjamin Eberlei 2011-11-13 17:16:43 +01:00
parent 4e10a95dca
commit 4571e498b4
2 changed files with 5 additions and 2 deletions

View File

@ -165,11 +165,13 @@ class ProxyFactory
{ {
$methods = ''; $methods = '';
$methodNames = array();
foreach ($class->reflClass->getMethods() as $method) { foreach ($class->reflClass->getMethods() as $method) {
/* @var $method ReflectionMethod */ /* @var $method ReflectionMethod */
if ($method->isConstructor() || in_array(strtolower($method->getName()), array("__sleep", "__clone")) || $class->reflClass->getName() != $method->class) { if ($method->isConstructor() || in_array(strtolower($method->getName()), array("__sleep", "__clone")) || isset($methodNames[$method->getName()])) {
continue; continue;
} }
$methodNames[$method->getName()] = true;
if ($method->isPublic() && ! $method->isFinal() && ! $method->isStatic()) { if ($method->isPublic() && ! $method->isFinal() && ! $method->isStatic()) {
$methods .= "\n" . ' public function '; $methods .= "\n" . ' public function ';
@ -234,7 +236,7 @@ class ProxyFactory
*/ */
private function isShortIdentifierGetter($method, $class) private function isShortIdentifierGetter($method, $class)
{ {
$identifier = lcfirst(substr($method->getName(), 3)); $identifier = lcfirst(substr($method->getName(), 3));
return ( return (
$method->getNumberOfParameters() == 0 && $method->getNumberOfParameters() == 0 &&
substr($method->getName(), 0, 3) == "get" && substr($method->getName(), 0, 3) == "get" &&

View File

@ -39,6 +39,7 @@ class MappedSuperclassTest extends \Doctrine\Tests\OrmFunctionalTestCase
$cleanFile = $this->_em->find(get_class($file), $file->getId()); $cleanFile = $this->_em->find(get_class($file), $file->getId());
$this->assertInstanceOf('Doctrine\Tests\Models\DirectoryTree\Directory', $cleanFile->getParent()); $this->assertInstanceOf('Doctrine\Tests\Models\DirectoryTree\Directory', $cleanFile->getParent());
$this->assertInstanceOf('Doctrine\ORM\Proxy\Proxy', $cleanFile->getParent());
$this->assertEquals($directory->getId(), $cleanFile->getParent()->getId()); $this->assertEquals($directory->getId(), $cleanFile->getParent()->getId());
$this->assertInstanceOf('Doctrine\Tests\Models\DirectoryTree\Directory', $cleanFile->getParent()->getParent()); $this->assertInstanceOf('Doctrine\Tests\Models\DirectoryTree\Directory', $cleanFile->getParent()->getParent());
$this->assertEquals($root->getId(), $cleanFile->getParent()->getParent()->getId()); $this->assertEquals($root->getId(), $cleanFile->getParent()->getParent()->getId());