Fix visibility of EntityManager parameter in child classes

This commit is contained in:
2025-10-01 10:10:34 +02:00
parent 119d870ac8
commit d4379cef6a
2 changed files with 13 additions and 18 deletions

View File

@@ -12,8 +12,10 @@ declare(strict_types=1);
namespace Chill\PersonBundle\CRUD\Controller; namespace Chill\PersonBundle\CRUD\Controller;
use Chill\MainBundle\CRUD\Controller\CRUDController; use Chill\MainBundle\CRUD\Controller\CRUDController;
use Chill\MainBundle\CRUD\Controller\string;
use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Person;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
@@ -23,9 +25,9 @@ use Symfony\Component\HttpFoundation\Response;
*/ */
class EntityPersonCRUDController extends CRUDController class EntityPersonCRUDController extends CRUDController
{ {
public function __construct(protected readonly \Doctrine\Persistence\ManagerRegistry $managerRegistry) {} public function __construct(protected ManagerRegistry $managerRegistry) {}
protected function generateTemplateParameter(string $action, mixed $entity, Request $request, array $defaultTemplateParameters = []) protected function generateTemplateParameter(string $action, mixed $entity, Request $request, array $defaultTemplateParameters = []): array
{ {
$templateParameters = parent::generateTemplateParameter($action, $entity, $request, $defaultTemplateParameters); $templateParameters = parent::generateTemplateParameter($action, $entity, $request, $defaultTemplateParameters);
@@ -36,20 +38,15 @@ class EntityPersonCRUDController extends CRUDController
/** /**
* Override the base method to add a filtering step to a person. * Override the base method to add a filtering step to a person.
*
* @return QueryBuilder
*/ */
protected function buildQueryEntities(string $action, Request $request): \Doctrine\ORM\QueryBuilder protected function buildQueryEntities(string $action, Request $request): QueryBuilder
{ {
$qb = parent::buildQueryEntities($action, $request); $qb = parent::buildQueryEntities($action, $request);
return $this->filterQueryEntitiesByPerson($action, $qb, $request); return $this->filterQueryEntitiesByPerson($action, $qb, $request);
} }
/** protected function createEntity(string $action, Request $request): object
* @param \Chill\MainBundle\CRUD\Controller\string|string $action
*/
protected function createEntity($action, Request $request): object
{ {
$entity = parent::createEntity($action, $request); $entity = parent::createEntity($action, $request);
@@ -63,9 +60,10 @@ class EntityPersonCRUDController extends CRUDController
/** /**
* Add a where clause to the buildQuery. * Add a where clause to the buildQuery.
* *
* @param \Chill\PersonBundle\CRUD\Controller\QueryBuilder $qb * @param string $action
* * @param QueryBuilder $qb
* @return \Chill\PersonBundle\CRUD\Controller\QueryBuilder * @param Request $request
* @return QueryBuilder
*/ */
protected function filterQueryEntitiesByPerson(string $action, QueryBuilder $qb, Request $request): QueryBuilder protected function filterQueryEntitiesByPerson(string $action, QueryBuilder $qb, Request $request): QueryBuilder
{ {
@@ -137,10 +135,6 @@ class EntityPersonCRUDController extends CRUDController
'save-and-new' => $this->redirectToRoute('chill_crud_'.$this->getCrudName().'_new', [ 'save-and-new' => $this->redirectToRoute('chill_crud_'.$this->getCrudName().'_new', [
'person_id' => $this->getPerson($request)->getId(), 'person_id' => $this->getPerson($request)->getId(),
]), ]),
'new' => $this->redirectToRoute('chill_crud_'.$this->getCrudName().'_view', [
'id' => $entity->getId(),
'person_id' => $this->getPerson($request)->getId(),
]),
default => $this->redirectToRoute('chill_crud_'.$this->getCrudName().'_view', [ default => $this->redirectToRoute('chill_crud_'.$this->getCrudName().'_view', [
'id' => $entity->getId(), 'id' => $entity->getId(),
'person_id' => $this->getPerson($request)->getId(), 'person_id' => $this->getPerson($request)->getId(),

View File

@@ -13,6 +13,7 @@ namespace Chill\PersonBundle\CRUD\Controller;
use Chill\MainBundle\CRUD\Controller\CRUDController; use Chill\MainBundle\CRUD\Controller\CRUDController;
use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Person;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormInterface;
use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
@@ -20,7 +21,7 @@ use Symfony\Component\HttpFoundation\Response;
class OneToOneEntityPersonCRUDController extends CRUDController class OneToOneEntityPersonCRUDController extends CRUDController
{ {
public function __construct(private readonly \Doctrine\Persistence\ManagerRegistry $managerRegistry) {} public function __construct(protected ManagerRegistry $managerRegistry) {}
protected function generateRedirectOnCreateRoute($action, Request $request, $entity): string protected function generateRedirectOnCreateRoute($action, Request $request, $entity): string
{ {
@@ -67,7 +68,7 @@ class OneToOneEntityPersonCRUDController extends CRUDController
return null; return null;
} }
protected function onPreFlush(string $action, $entity, FormInterface $form, Request $request) protected function onPreFlush(string $action, $entity, FormInterface $form, Request $request): void
{ {
$this->managerRegistry->getManager()->persist($entity); $this->managerRegistry->getManager()->persist($entity);
} }