1717use EasyCorp \Bundle \EasyAdminBundle \Config \Option \EA ;
1818use EasyCorp \Bundle \EasyAdminBundle \Context \AdminContext ;
1919use EasyCorp \Bundle \EasyAdminBundle \Contracts \Controller \CrudControllerInterface ;
20+ use EasyCorp \Bundle \EasyAdminBundle \Contracts \Orm \EntityRepositoryInterface ;
21+ use EasyCorp \Bundle \EasyAdminBundle \Contracts \Orm \EntityUpdaterInterface ;
22+ use EasyCorp \Bundle \EasyAdminBundle \Contracts \Provider \AdminContextProviderInterface ;
2023use EasyCorp \Bundle \EasyAdminBundle \Dto \AssetsDto ;
2124use EasyCorp \Bundle \EasyAdminBundle \Dto \BatchActionDto ;
2225use EasyCorp \Bundle \EasyAdminBundle \Dto \EntityDto ;
5053use EasyCorp \Bundle \EasyAdminBundle \Provider \AdminContextProvider ;
5154use EasyCorp \Bundle \EasyAdminBundle \Provider \FieldProvider ;
5255use EasyCorp \Bundle \EasyAdminBundle \Router \AdminUrlGenerator ;
56+ use EasyCorp \Bundle \EasyAdminBundle \Router \AdminUrlGeneratorInterface ;
5357use EasyCorp \Bundle \EasyAdminBundle \Security \Permission ;
5458use Symfony \Bundle \FrameworkBundle \Controller \AbstractController ;
5559use Symfony \Component \EventDispatcher \EventDispatcherInterface ;
@@ -106,17 +110,22 @@ public static function getSubscribedServices(): array
106110 'doctrine ' => '? ' .ManagerRegistry::class,
107111 'event_dispatcher ' => '? ' .EventDispatcherInterface::class,
108112 ActionFactory::class => '? ' .ActionFactory::class,
109- AdminContextProvider ::class => '? ' .AdminContextProvider ::class,
110- AdminUrlGenerator ::class => '? ' .AdminUrlGenerator ::class,
113+ AdminContextProviderInterface ::class => '? ' .AdminContextProviderInterface ::class,
114+ AdminUrlGeneratorInterface ::class => '? ' .AdminUrlGeneratorInterface ::class,
111115 ControllerFactory::class => '? ' .ControllerFactory::class,
112116 EntityFactory::class => '? ' .EntityFactory::class,
113- EntityRepository ::class => '? ' .EntityRepository ::class,
114- EntityUpdater ::class => '? ' .EntityUpdater ::class,
117+ EntityRepositoryInterface ::class => '? ' .EntityRepositoryInterface ::class,
118+ EntityUpdaterInterface ::class => '? ' .EntityUpdaterInterface ::class,
115119 FieldProvider::class => '? ' .FieldProvider::class,
116120 FilterFactory::class => '? ' .FilterFactory::class,
117121 FormFactory::class => '? ' .FormFactory::class,
118122 PaginatorFactory::class => '? ' .PaginatorFactory::class,
119123 FieldFactory::class => '? ' .FieldFactory::class,
124+ // the following keys are kept for BC reasons (they were replaced by the corresponding interfaces)
125+ AdminContextProvider::class => '? ' .AdminContextProviderInterface::class,
126+ AdminUrlGenerator::class => '? ' .AdminUrlGeneratorInterface::class,
127+ EntityRepository::class => '? ' .EntityRepositoryInterface::class,
128+ EntityUpdater::class => '? ' .EntityUpdaterInterface::class,
120129 ]);
121130 }
122131
@@ -140,7 +149,7 @@ public function index(AdminContext $context)
140149 // this can happen after deleting some items and trying to return
141150 // to a 'index' page that no longer exists. Redirect to the last page instead
142151 if ($ paginator ->isOutOfRange ()) {
143- return $ this ->redirect ($ this ->container ->get (AdminUrlGenerator ::class)
152+ return $ this ->redirect ($ this ->container ->get (AdminUrlGeneratorInterface ::class)
144153 ->set (EA ::PAGE , $ paginator ->getLastPage ())
145154 ->generateUrl ());
146155 }
@@ -400,7 +409,7 @@ public function delete(AdminContext $context)
400409 return $ event ->getResponse ();
401410 }
402411
403- return $ this ->redirect ($ this ->container ->get (AdminUrlGenerator ::class)->setController ($ context ->getCrud ()->getControllerFqcn ())->setAction (Action::INDEX )->unset (EA ::ENTITY_ID )->generateUrl ());
412+ return $ this ->redirect ($ this ->container ->get (AdminUrlGeneratorInterface ::class)->setController ($ context ->getCrud ()->getControllerFqcn ())->setAction (Action::INDEX )->unset (EA ::ENTITY_ID )->generateUrl ());
404413 }
405414
406415 /**
@@ -464,7 +473,7 @@ public function batchDelete(AdminContext $context, BatchActionDto $batchActionDt
464473 }
465474
466475 // resetting the page number is needed because after deleting some entities, the pagination will change
467- return $ this ->redirect ($ this ->container ->get (AdminUrlGenerator ::class)->setAction (Action::INDEX )->set (EA ::PAGE , 1 )->generateUrl ());
476+ return $ this ->redirect ($ this ->container ->get (AdminUrlGeneratorInterface ::class)->setAction (Action::INDEX )->set (EA ::PAGE , 1 )->generateUrl ());
468477 }
469478
470479 public function autocomplete (AdminContext $ context ): JsonResponse
@@ -521,7 +530,7 @@ public function autocomplete(AdminContext $context): JsonResponse
521530
522531 public function createIndexQueryBuilder (SearchDto $ searchDto , EntityDto $ entityDto , FieldCollection $ fields , FilterCollection $ filters ): QueryBuilder
523532 {
524- return $ this ->container ->get (EntityRepository ::class)->createQueryBuilder ($ searchDto , $ entityDto , $ fields , $ filters );
533+ return $ this ->container ->get (EntityRepositoryInterface ::class)->createQueryBuilder ($ searchDto , $ entityDto , $ fields , $ filters );
525534 }
526535
527536 public function renderFilters (AdminContext $ context ): KeyValueStore
@@ -599,7 +608,7 @@ public function configureResponseParameters(KeyValueStore $responseParameters):
599608
600609 protected function getContext (): ?AdminContext
601610 {
602- return $ this ->container ->get (AdminContextProvider ::class)->getContext ();
611+ return $ this ->container ->get (AdminContextProviderInterface ::class)->getContext ();
603612 }
604613
605614 /**
@@ -612,7 +621,7 @@ protected function ajaxEdit(EntityDto $entityDto, ?string $propertyName, bool $n
612621 throw new AccessDeniedException (sprintf ('The field "%s" does not exist or it \'s configured as disabled, so it can \'t be modified. ' , $ propertyName ));
613622 }
614623
615- $ this ->container ->get (EntityUpdater ::class)->updateProperty ($ entityDto , $ propertyName , $ newValue );
624+ $ this ->container ->get (EntityUpdaterInterface ::class)->updateProperty ($ entityDto , $ propertyName , $ newValue );
616625
617626 /** @var TEntity $entityInstance */
618627 $ entityInstance = $ entityDto ->getInstance ();
@@ -683,12 +692,12 @@ protected function getRedirectResponseAfterSave(AdminContext $context, string $a
683692 $ submitButtonName = $ context ->getRequest ()->request ->all ()['ea ' ]['newForm ' ]['btn ' ] ?? null ;
684693
685694 $ url = match ($ submitButtonName ) {
686- Action::SAVE_AND_CONTINUE => $ this ->container ->get (AdminUrlGenerator ::class)
695+ Action::SAVE_AND_CONTINUE => $ this ->container ->get (AdminUrlGeneratorInterface ::class)
687696 ->setAction (Action::EDIT )
688697 ->setEntityId ($ context ->getEntity ()->getPrimaryKeyValue ())
689698 ->generateUrl (),
690- Action::SAVE_AND_RETURN => $ this ->container ->get (AdminUrlGenerator ::class)->setAction (Action::INDEX )->generateUrl (),
691- Action::SAVE_AND_ADD_ANOTHER => $ this ->container ->get (AdminUrlGenerator ::class)->setAction (Action::NEW )->generateUrl (),
699+ Action::SAVE_AND_RETURN => $ this ->container ->get (AdminUrlGeneratorInterface ::class)->setAction (Action::INDEX )->generateUrl (),
700+ Action::SAVE_AND_ADD_ANOTHER => $ this ->container ->get (AdminUrlGeneratorInterface ::class)->setAction (Action::NEW )->generateUrl (),
692701 default => $ this ->generateUrl ($ context ->getDashboardRouteName ()),
693702 };
694703
0 commit comments