|
12 | 12 | namespace Symfony\Bundle\MakerBundle\Doctrine; |
13 | 13 |
|
14 | 14 | use ApiPlatform\Metadata\ApiResource; |
| 15 | +use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; |
| 16 | +use Doctrine\ORM\Exception\ORMException; |
15 | 17 | use Doctrine\ORM\Mapping; |
| 18 | +use Doctrine\ORM\OptimisticLockException; |
| 19 | +use Doctrine\ORM\ORMException as LegacyORMException; |
16 | 20 | use Doctrine\Persistence\ManagerRegistry; |
17 | 21 | use Symfony\Bundle\MakerBundle\Generator; |
18 | 22 | use Symfony\Bundle\MakerBundle\Str; |
19 | 23 | use Symfony\Bundle\MakerBundle\Util\ClassNameDetails; |
20 | 24 | use Symfony\Bundle\MakerBundle\Util\TemplateComponentGenerator; |
| 25 | +use Symfony\Component\Security\Core\Exception\UnsupportedUserException; |
21 | 26 | use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface; |
| 27 | +use Symfony\Component\Security\Core\User\PasswordUpgraderInterface; |
22 | 28 | use Symfony\Component\Security\Core\User\UserInterface; |
23 | 29 | use Symfony\UX\Turbo\Attribute\Broadcast; |
24 | 30 |
|
@@ -49,7 +55,7 @@ public function generateEntityClass(ClassNameDetails $entityClassDetails, bool $ |
49 | 55 |
|
50 | 56 | $useStatements = [ |
51 | 57 | $repoClassDetails->getFullName(), |
52 | | - [Mapping::class => 'ORM'] |
| 58 | + [Mapping::class => 'ORM'], |
53 | 59 | ]; |
54 | 60 |
|
55 | 61 | if ($broadcast) { |
@@ -100,16 +106,35 @@ public function generateRepositoryClass(string $repositoryClass, string $entityC |
100 | 106 |
|
101 | 107 | $interfaceClassNameDetails = new ClassNameDetails($passwordUserInterfaceName, 'Symfony\Component\Security\Core\User'); |
102 | 108 |
|
| 109 | + $useStatements = [ |
| 110 | + $entityClass, |
| 111 | + ManagerRegistry::class, |
| 112 | + ServiceEntityRepository::class, |
| 113 | + OptimisticLockException::class, |
| 114 | + ]; |
| 115 | + |
| 116 | + // @Legacy Drop LegacyORMException when XXXXXXX |
| 117 | + $useStatements[] = class_exists(ORMException::class) ? ORMException::class : LegacyORMException::class; |
| 118 | + |
| 119 | + if ($withPasswordUpgrade) { |
| 120 | + $passwordClasses = [ |
| 121 | + $interfaceClassNameDetails->getFullName(), |
| 122 | + PasswordUpgraderInterface::class, |
| 123 | + UnsupportedUserException::class, |
| 124 | + ]; |
| 125 | + |
| 126 | + $useStatements = array_merge($passwordClasses, $useStatements); |
| 127 | + } |
| 128 | + |
103 | 129 | $this->generator->generateClass( |
104 | 130 | $repositoryClass, |
105 | 131 | 'doctrine/Repository.tpl.php', |
106 | 132 | [ |
107 | | - 'entity_full_class_name' => $entityClass, |
| 133 | + 'use_statements' => TemplateComponentGenerator::generateUseStatements($useStatements), |
108 | 134 | 'entity_class_name' => $shortEntityClass, |
109 | 135 | 'entity_alias' => $entityAlias, |
110 | 136 | 'with_password_upgrade' => $withPasswordUpgrade, |
111 | 137 | 'password_upgrade_user_interface' => $interfaceClassNameDetails, |
112 | | - 'doctrine_registry_class' => $this->managerRegistryClassName, |
113 | 138 | 'include_example_comments' => $includeExampleComments, |
114 | 139 | ] |
115 | 140 | ); |
|
0 commit comments