Skip to content

Commit 39968b0

Browse files
committed
bug #667 Fixing usage of legacy manager registry (weaverryan)
This PR was squashed before being merged into the 1.0-dev branch. Discussion ---------- Fixing usage of legacy manager registry The user's app might use either the new or old class. This is already handled correctly on DoctrineHelper. Fixes #665 Commits ------- 1e0482b Fixing bad EntityClassGenerator 7390fd3 fixing usage of legacy manager registry
2 parents fabbbef + 1e0482b commit 39968b0

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

src/Maker/MakeResetPassword.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,13 @@ class MakeResetPassword extends AbstractMaker
5252
{
5353
private $fileManager;
5454
private $doctrineHelper;
55+
private $entityClassGenerator;
5556

56-
public function __construct(FileManager $fileManager, DoctrineHelper $doctrineHelper)
57+
public function __construct(FileManager $fileManager, DoctrineHelper $doctrineHelper, EntityClassGenerator $entityClassGenerator)
5758
{
5859
$this->fileManager = $fileManager;
5960
$this->doctrineHelper = $doctrineHelper;
61+
$this->entityClassGenerator = $entityClassGenerator;
6062
}
6163

6264
public static function getCommandName(): string
@@ -323,9 +325,7 @@ private function successMessage(InputInterface $input, ConsoleStyle $io, string
323325

324326
private function generateRequestEntity(Generator $generator, ClassNameDetails $requestClassNameDetails, ClassNameDetails $repositoryClassNameDetails, string $userClass): void
325327
{
326-
$entityClassGenerator = new EntityClassGenerator($generator, $this->doctrineHelper);
327-
328-
$requestEntityPath = $entityClassGenerator->generateEntityClass($requestClassNameDetails, false, false, false);
328+
$requestEntityPath = $this->entityClassGenerator->generateEntityClass($requestClassNameDetails, false, false, false);
329329

330330
$generator->writeChanges();
331331

@@ -359,7 +359,7 @@ private function generateRequestEntity(Generator $generator, ClassNameDetails $r
359359

360360
$this->fileManager->dumpFile($requestEntityPath, $manipulator->getSourceCode());
361361

362-
$entityClassGenerator->generateRepositoryClass(
362+
$this->entityClassGenerator->generateRepositoryClass(
363363
$repositoryClassNameDetails->getFullName(),
364364
$requestClassNameDetails->getFullName(),
365365
false,

src/Resources/config/makers.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
<service id="maker.maker.make_reset_password" class="Symfony\Bundle\MakerBundle\Maker\MakeResetPassword">
7878
<argument type="service" id="maker.file_manager" />
7979
<argument type="service" id="maker.doctrine_helper" />
80+
<argument type="service" id="maker.entity_class_generator" />
8081
<tag name="maker.command" />
8182
</service>
8283

src/Validator.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111

1212
namespace Symfony\Bundle\MakerBundle;
1313

14-
use Doctrine\Common\Persistence\ManagerRegistry;
14+
use Doctrine\Common\Persistence\ManagerRegistry as LegacyManagerRegistry;
15+
use Doctrine\Persistence\ManagerRegistry;
1516
use Symfony\Bundle\MakerBundle\Exception\RuntimeCommandException;
1617
use Symfony\Component\Security\Core\User\UserInterface;
1718

@@ -155,8 +156,15 @@ public static function validatePropertyName(string $name)
155156
return $name;
156157
}
157158

158-
public static function validateDoctrineFieldName(string $name, ManagerRegistry $registry)
159+
/**
160+
* @param ManagerRegistry|LegacyManagerRegistry $registry
161+
*/
162+
public static function validateDoctrineFieldName(string $name, $registry)
159163
{
164+
if (!$registry instanceof ManagerRegistry && !$registry instanceof LegacyManagerRegistry) {
165+
throw new \InvalidArgumentException(sprintf('Argument 2 to %s::validateDoctrineFieldName must be an instance of %s, %s passed.', __CLASS__, ManagerRegistry::class, \is_object($registry) ? \get_class($registry) : \gettype($registry)));
166+
}
167+
160168
// check reserved words
161169
if ($registry->getConnection()->getDatabasePlatform()->getReservedKeywordsList()->isKeyword($name)) {
162170
throw new \InvalidArgumentException(sprintf('Name "%s" is a reserved word.', $name));

0 commit comments

Comments
 (0)