From fdca5d7584555771be7e40cbb917c8cfb7841ce6 Mon Sep 17 00:00:00 2001 From: FlorianLB Date: Thu, 19 Jun 2014 10:00:40 +0200 Subject: [PATCH] singularize variable name on add/remove methods for EntityGenerator --- lib/Doctrine/ORM/Tools/EntityGenerator.php | 6 ++++-- tests/Doctrine/Tests/ORM/Tools/EntityGeneratorTest.php | 8 ++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/lib/Doctrine/ORM/Tools/EntityGenerator.php b/lib/Doctrine/ORM/Tools/EntityGenerator.php index 83b738666..e6680e53b 100644 --- a/lib/Doctrine/ORM/Tools/EntityGenerator.php +++ b/lib/Doctrine/ORM/Tools/EntityGenerator.php @@ -1149,8 +1149,10 @@ public function __construct() protected function generateEntityStubMethod(ClassMetadataInfo $metadata, $type, $fieldName, $typeHint = null, $defaultValue = null) { $methodName = $type . Inflector::classify($fieldName); + $variableName = Inflector::camelize($fieldName); if (in_array($type, array("add", "remove"))) { $methodName = Inflector::singularize($methodName); + $variableName = Inflector::singularize($variableName); } if ($this->hasMethod($methodName, $metadata)) { @@ -1171,10 +1173,10 @@ public function __construct() } $replacements = array( - '' => ucfirst($type) . ' ' . $fieldName, + '' => ucfirst($type) . ' ' . $variableName, '' => $methodTypeHint, '' => $variableType, - '' => Inflector::camelize($fieldName), + '' => $variableName, '' => $methodName, '' => $fieldName, '' => ($defaultValue !== null ) ? (' = '.$defaultValue) : '', diff --git a/tests/Doctrine/Tests/ORM/Tools/EntityGeneratorTest.php b/tests/Doctrine/Tests/ORM/Tools/EntityGeneratorTest.php index 143de62da..6394f6399 100644 --- a/tests/Doctrine/Tests/ORM/Tools/EntityGeneratorTest.php +++ b/tests/Doctrine/Tests/ORM/Tools/EntityGeneratorTest.php @@ -133,6 +133,14 @@ class EntityGeneratorTest extends \Doctrine\Tests\OrmTestCase $book->setName('Jonathan H. Wage'); $this->assertEquals('Jonathan H. Wage', $book->getName()); + $reflMethod = new \ReflectionMethod($metadata->name, 'addComment'); + $addCommentParameters = $reflMethod->getParameters(); + $this->assertEquals('comment', $addCommentParameters[0]->getName()); + + $reflMethod = new \ReflectionMethod($metadata->name, 'removeComment'); + $removeCommentParameters = $reflMethod->getParameters(); + $this->assertEquals('comment', $removeCommentParameters[0]->getName()); + $author = new EntityGeneratorAuthor(); $book->setAuthor($author); $this->assertEquals($author, $book->getAuthor());