Skip to content

Commit ddc814e

Browse files
committed
[make:entity] use sorted use statements for repositories
1 parent 34ec157 commit ddc814e

File tree

2 files changed

+29
-12
lines changed

2 files changed

+29
-12
lines changed

src/Doctrine/EntityClassGenerator.php

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,19 @@
1212
namespace Symfony\Bundle\MakerBundle\Doctrine;
1313

1414
use ApiPlatform\Metadata\ApiResource;
15+
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
16+
use Doctrine\ORM\Exception\ORMException;
1517
use Doctrine\ORM\Mapping;
18+
use Doctrine\ORM\OptimisticLockException;
19+
use Doctrine\ORM\ORMException as LegacyORMException;
1620
use Doctrine\Persistence\ManagerRegistry;
1721
use Symfony\Bundle\MakerBundle\Generator;
1822
use Symfony\Bundle\MakerBundle\Str;
1923
use Symfony\Bundle\MakerBundle\Util\ClassNameDetails;
2024
use Symfony\Bundle\MakerBundle\Util\TemplateComponentGenerator;
25+
use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
2126
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
27+
use Symfony\Component\Security\Core\User\PasswordUpgraderInterface;
2228
use Symfony\Component\Security\Core\User\UserInterface;
2329
use Symfony\UX\Turbo\Attribute\Broadcast;
2430

@@ -49,7 +55,7 @@ public function generateEntityClass(ClassNameDetails $entityClassDetails, bool $
4955

5056
$useStatements = [
5157
$repoClassDetails->getFullName(),
52-
[Mapping::class => 'ORM']
58+
[Mapping::class => 'ORM'],
5359
];
5460

5561
if ($broadcast) {
@@ -100,16 +106,35 @@ public function generateRepositoryClass(string $repositoryClass, string $entityC
100106

101107
$interfaceClassNameDetails = new ClassNameDetails($passwordUserInterfaceName, 'Symfony\Component\Security\Core\User');
102108

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+
103129
$this->generator->generateClass(
104130
$repositoryClass,
105131
'doctrine/Repository.tpl.php',
106132
[
107-
'entity_full_class_name' => $entityClass,
133+
'use_statements' => TemplateComponentGenerator::generateUseStatements($useStatements),
108134
'entity_class_name' => $shortEntityClass,
109135
'entity_alias' => $entityAlias,
110136
'with_password_upgrade' => $withPasswordUpgrade,
111137
'password_upgrade_user_interface' => $interfaceClassNameDetails,
112-
'doctrine_registry_class' => $this->managerRegistryClassName,
113138
'include_example_comments' => $includeExampleComments,
114139
]
115140
);

src/Resources/skeleton/doctrine/Repository.tpl.php

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,7 @@
22

33
namespace <?= $namespace; ?>;
44

5-
use <?= $entity_full_class_name; ?>;
6-
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
7-
use Doctrine\ORM\OptimisticLockException;
8-
use Doctrine\ORM\ORMException;
9-
use <?= $doctrine_registry_class; ?>;
10-
<?= $with_password_upgrade ? "use Symfony\Component\Security\Core\Exception\UnsupportedUserException;\n" : '' ?>
11-
<?= ($with_password_upgrade && str_contains($password_upgrade_user_interface->getFullName(), 'Password')) ? sprintf("use %s;\n", $password_upgrade_user_interface->getFullName()) : null ?>
12-
<?= $with_password_upgrade ? "use Symfony\Component\Security\Core\User\PasswordUpgraderInterface;\n" : '' ?>
13-
<?= ($with_password_upgrade && str_contains($password_upgrade_user_interface->getFullName(), '\UserInterface')) ? sprintf("use %s;\n", $password_upgrade_user_interface->getFullName()) : null ?>
5+
<?= $use_statements; ?>
146

157
/**
168
* @extends ServiceEntityRepository<<?= $entity_class_name; ?>>

0 commit comments

Comments
 (0)