diff --git a/src/Generator/ClassGenerator.php b/src/Generator/ClassGenerator.php index 2d382ebf..843313c6 100644 --- a/src/Generator/ClassGenerator.php +++ b/src/Generator/ClassGenerator.php @@ -1018,6 +1018,7 @@ private function validateConstantValue($value) */ private function generateShortOrCompleteClassname($fqnClassName) { + $fqnClassName = ltrim($fqnClassName, '\\'); $parts = explode('\\', $fqnClassName); $className = array_pop($parts); $classNamespace = implode('\\', $parts); diff --git a/test/Generator/ClassGeneratorTest.php b/test/Generator/ClassGeneratorTest.php index 039e5cd6..c2c63cd0 100644 --- a/test/Generator/ClassGeneratorTest.php +++ b/test/Generator/ClassGeneratorTest.php @@ -1107,6 +1107,23 @@ public function testCorrectExtendNames() $this->assertContains('class ClassName extends DateTime', $classGenerator->generate()); } + /** + * @group 75 + */ + public function testCorrectExtendNamesFromGlobalNamespace() + { + $classGenerator = new ClassGenerator(); + $classGenerator->setName('ClassName'); + $classGenerator->setNamespaceName('SomeNamespace'); + $classGenerator->setExtendedClass('\DateTime'); + $this->assertContains('class ClassName extends \DateTime', $classGenerator->generate()); + + $classGenerator = new ClassGenerator(); + $classGenerator->setName('ClassName'); + $classGenerator->setExtendedClass('\DateTime'); + $this->assertContains('class ClassName extends DateTime', $classGenerator->generate()); + } + public function testCorrectImplementNames() { $classGenerator = new ClassGenerator();