1414use ApiPlatform \Metadata \ApiResource ;
1515use Doctrine \Bundle \DoctrineBundle \Repository \ServiceEntityRepository ;
1616use Doctrine \Persistence \ManagerRegistry ;
17+ use Symfony \Bridge \Doctrine \Types \UlidType ;
1718use Symfony \Bridge \Doctrine \Types \UuidType ;
1819use Symfony \Bundle \MakerBundle \Generator ;
20+ use Symfony \Bundle \MakerBundle \Maker \Common \EntityIdTypeEnum ;
1921use Symfony \Bundle \MakerBundle \Str ;
2022use Symfony \Bundle \MakerBundle \Util \ClassNameDetails ;
2123use Symfony \Bundle \MakerBundle \Util \UseStatementGenerator ;
2224use Symfony \Component \Security \Core \Exception \UnsupportedUserException ;
2325use Symfony \Component \Security \Core \User \PasswordAuthenticatedUserInterface ;
2426use Symfony \Component \Security \Core \User \PasswordUpgraderInterface ;
2527use Symfony \Component \Security \Core \User \UserInterface ;
28+ use Symfony \Component \Uid \Ulid ;
2629use Symfony \Component \Uid \Uuid ;
2730use Symfony \UX \Turbo \Attribute \Broadcast ;
2831
@@ -37,7 +40,7 @@ public function __construct(
3740 ) {
3841 }
3942
40- public function generateEntityClass (ClassNameDetails $ entityClassDetails , bool $ apiResource , bool $ withPasswordUpgrade = false , bool $ generateRepositoryClass = true , bool $ broadcast = false , bool $ useUuidIdentifier = false ): string
43+ public function generateEntityClass (ClassNameDetails $ entityClassDetails , bool $ apiResource , bool $ withPasswordUpgrade = false , bool $ generateRepositoryClass = true , bool $ broadcast = false , EntityIdTypeEnum $ useUuidIdentifier = EntityIdTypeEnum:: INT ): string
4144 {
4245 $ repoClassDetails = $ this ->generator ->createClassNameDetails (
4346 $ entityClassDetails ->getRelativeName (),
@@ -60,13 +63,20 @@ public function generateEntityClass(ClassNameDetails $entityClassDetails, bool $
6063 $ useStatements ->addUseStatement (ApiResource::class);
6164 }
6265
63- if ($ useUuidIdentifier ) {
66+ if (EntityIdTypeEnum:: UUID === $ useUuidIdentifier ) {
6467 $ useStatements ->addUseStatement ([
6568 Uuid::class,
6669 UuidType::class,
6770 ]);
6871 }
6972
73+ if (EntityIdTypeEnum::ULID === $ useUuidIdentifier ) {
74+ $ useStatements ->addUseStatement ([
75+ Ulid::class,
76+ UlidType::class,
77+ ]);
78+ }
79+
7080 $ entityPath = $ this ->generator ->generateClass (
7181 $ entityClassDetails ->getFullName (),
7282 'doctrine/Entity.tpl.php ' ,
@@ -77,7 +87,7 @@ public function generateEntityClass(ClassNameDetails $entityClassDetails, bool $
7787 'broadcast ' => $ broadcast ,
7888 'should_escape_table_name ' => $ this ->doctrineHelper ->isKeyword ($ tableName ),
7989 'table_name ' => $ tableName ,
80- 'uses_uuid ' => $ useUuidIdentifier ,
90+ 'id_type ' => $ useUuidIdentifier ,
8191 ]
8292 );
8393
0 commit comments