Skip to content
This repository was archived by the owner on Oct 28, 2025. It is now read-only.

Commit 051ebfe

Browse files
committed
make identity optional when generating repository
1 parent 84dbb1a commit 051ebfe

File tree

3 files changed

+24
-20
lines changed

3 files changed

+24
-20
lines changed

src/Maker/MakeModel.php

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -470,17 +470,17 @@ private function generateEntity(
470470
/**
471471
* Generate model repository
472472
*
473-
* @param ClassNameDetails $modelClassNameDetails
474-
* @param ClassNameDetails $identityClassNameDetails
475-
* @param InputInterface $input
476473
* @param Generator $generator
474+
* @param InputInterface $input
475+
* @param ClassNameDetails $modelClassNameDetails
476+
* @param ?ClassNameDetails $identityClassNameDetails
477477
* @throws \Exception
478478
*/
479479
private function generateRepository(
480-
ClassNameDetails $modelClassNameDetails,
481-
ClassNameDetails $identityClassNameDetails,
480+
Generator $generator,
482481
InputInterface $input,
483-
Generator $generator
482+
ClassNameDetails $modelClassNameDetails,
483+
?ClassNameDetails $identityClassNameDetails,
484484
): void {
485485
$interfaceNameDetails = $generator->createClassNameDetails(
486486
$input->getArgument('name'),
@@ -489,10 +489,10 @@ private function generateRepository(
489489
);
490490

491491
$this->generateRepositoryInterface(
492+
$generator,
492493
$interfaceNameDetails,
493494
$modelClassNameDetails,
494495
$identityClassNameDetails,
495-
$generator
496496
);
497497

498498
$implementationNameDetails = $generator->createClassNameDetails(
@@ -503,17 +503,17 @@ private function generateRepository(
503503

504504
$interfaceClassName = $interfaceNameDetails->getShortName() . 'Interface';
505505
$templateVars = [
506-
'use_statements' => new UseStatementGenerator([
506+
'use_statements' => new UseStatementGenerator(array_filter([
507507
$modelClassNameDetails->getFullName(),
508-
$identityClassNameDetails->getFullName(),
508+
$identityClassNameDetails?->getFullName(),
509509
ManagerRegistry::class,
510510
QueryBuilder::class,
511511
[ OrmRepository::class => 'OrmRepository' ],
512512
[ $interfaceNameDetails->getFullName() => $interfaceClassName ],
513-
]),
513+
])),
514514
'interface_class_name' => $interfaceClassName,
515515
'model_class_name' => $modelClassNameDetails->getShortName(),
516-
'identity_class_name' => $identityClassNameDetails->getShortName()
516+
'identity_class_name' => $identityClassNameDetails?->getShortName()
517517
];
518518

519519
$templatePath = __DIR__.'/../Resources/skeleton/model/Repository.tpl.php';
@@ -529,26 +529,26 @@ private function generateRepository(
529529
/**
530530
* Generate model repository
531531
*
532-
* @param ClassNameDetails $classNameDetails
533-
* @param ClassNameDetails $entityClassNameDetails
534-
* @param ClassNameDetails $identityClassNameDetails
535532
* @param Generator $generator
533+
* @param ClassNameDetails $classNameDetails
534+
* @param ClassNameDetails $modelClassNameDetails
535+
* @param ?ClassNameDetails $identityClassNameDetails
536536
* @throws \Exception
537537
*/
538538
private function generateRepositoryInterface(
539+
Generator $generator,
539540
ClassNameDetails $classNameDetails,
540541
ClassNameDetails $modelClassNameDetails,
541-
ClassNameDetails $identityClassNameDetails,
542-
Generator $generator
542+
?ClassNameDetails $identityClassNameDetails,
543543
): void {
544544
$templateVars = [
545-
'use_statements' => new UseStatementGenerator([
545+
'use_statements' => new UseStatementGenerator(array_filter([
546546
$modelClassNameDetails->getFullName(),
547-
$identityClassNameDetails->getFullName(),
547+
$identityClassNameDetails?->getFullName(),
548548
Repository::class,
549-
]),
549+
])),
550550
'model_class_name' => $modelClassNameDetails->getShortName(),
551-
'identity_class_name' => $identityClassNameDetails->getShortName()
551+
'identity_class_name' => $identityClassNameDetails?->getShortName()
552552
];
553553

554554
$templatePath = __DIR__.'/../Resources/skeleton/model/RepositoryInterface.tpl.php';

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@
66

77
class <?= $class_name ?> extends OrmRepository implements <?= $interface_class_name ?>
88
{
9+
<?php if ($identity_class_name): ?>
910
public function findById(<?= $identity_class_name ?> $id): ?<?= $model_class_name ?>
1011
{
1112
// TODO: Implement me!
1213

1314
return null;
1415
}
16+
<?php endif; ?>
1517

1618
// public function findByExampleField($value): self
1719
// {

src/Resources/skeleton/model/RepositoryInterface.tpl.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,7 @@
66

77
interface <?= $class_name ?> extends Repository
88
{
9+
<?php if ($identity_class_name): ?>
910
public function findById(<?= $identity_class_name ?> $id): ?<?= $model_class_name ?>;
11+
<?php endif; ?>
1012
}

0 commit comments

Comments
 (0)