diff --git a/src/Maker/MakeResetPassword.php b/src/Maker/MakeResetPassword.php index 0ea360658..d6a845e2e 100644 --- a/src/Maker/MakeResetPassword.php +++ b/src/Maker/MakeResetPassword.php @@ -272,7 +272,7 @@ public function generate(InputInterface $input, ConsoleStyle $io, Generator $gen ] ); - $this->generateRequestEntity($generator, $requestClassNameDetails, $repositoryClassNameDetails); + $this->generateRequestEntity($generator, $requestClassNameDetails, $repositoryClassNameDetails, $userClassNameDetails); $this->setBundleConfig($io, $generator, $repositoryClassNameDetails->getFullName()); @@ -405,8 +405,9 @@ private function successMessage(ConsoleStyle $io, string $requestClassName): voi $io->newLine(); } - private function generateRequestEntity(Generator $generator, ClassNameDetails $requestClassNameDetails, ClassNameDetails $repositoryClassNameDetails): void + private function generateRequestEntity(Generator $generator, ClassNameDetails $requestClassNameDetails, ClassNameDetails $repositoryClassNameDetails, ClassNameDetails $userClassDetails): void { + // Generate ResetPasswordRequest Entity $requestEntityPath = $this->entityClassGenerator->generateEntityClass( entityClassDetails: $requestClassNameDetails, apiResource: false, @@ -426,8 +427,10 @@ private function generateRequestEntity(Generator $generator, ClassNameDetails $r $manipulator->addTrait(ResetPasswordRequestTrait::class); + $manipulator->addUseStatementIfNecessary($userClassDetails->getFullName()); + $manipulator->addConstructor([ - (new Param('user'))->setType('object')->getNode(), + (new Param('user'))->setType($userClassDetails->getShortName())->getNode(), (new Param('expiresAt'))->setType('\DateTimeInterface')->getNode(), (new Param('selector'))->setType('string')->getNode(), (new Param('hashedToken'))->setType('string')->getNode(), @@ -444,7 +447,7 @@ private function generateRequestEntity(Generator $generator, ClassNameDetails $r mapInverseRelation: false, avoidSetter: true, isCustomReturnTypeNullable: false, - customReturnType: 'object', + customReturnType: $userClassDetails->getShortName(), isOwning: true, )); @@ -459,6 +462,7 @@ private function generateRequestEntity(Generator $generator, ClassNameDetails $r $generator->writeChanges(); + // Generate ResetPasswordRequestRepository $pathRequestRepository = $this->fileManager->getRelativePathForFutureClass( $repositoryClassNameDetails->getFullName() ); @@ -471,7 +475,14 @@ private function generateRequestEntity(Generator $generator, ClassNameDetails $r $manipulator->addTrait(ResetPasswordRequestRepositoryTrait::class); - $methodBuilder = $manipulator->createMethodBuilder('createResetPasswordRequest', ResetPasswordRequestInterface::class, false); + $methodBuilder = $manipulator->createMethodBuilder( + methodName: 'createResetPasswordRequest', + returnType: ResetPasswordRequestInterface::class, + isReturnTypeNullable: false, + commentLines: [sprintf('@param %s $user', $userClassDetails->getShortName())] + ); + + $manipulator->addUseStatementIfNecessary($userClassDetails->getFullName()); $manipulator->addMethodBuilder($methodBuilder, [ (new Param('user'))->setType('object')->getNode(), diff --git a/src/Resources/skeleton/resetPassword/ResetPasswordController.tpl.php b/src/Resources/skeleton/resetPassword/ResetPasswordController.tpl.php index c4127e554..6af5c3591 100644 --- a/src/Resources/skeleton/resetPassword/ResetPasswordController.tpl.php +++ b/src/Resources/skeleton/resetPassword/ResetPasswordController.tpl.php @@ -74,6 +74,7 @@ public function reset(Request $request, UserPasswordHasherInterface $passwordHas } try { + /** @var $user */ $user = $this->resetPasswordHelper->validateTokenAndFetchUser($token); } catch (ResetPasswordExceptionInterface $e) { $this->addFlash('reset_password_error', sprintf(