mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-20 22:53:49 +00:00
DX: apply rector rules up to php8.0
This commit is contained in:
@@ -36,11 +36,8 @@ abstract class AbstractCRUDController extends AbstractController
|
||||
|
||||
/**
|
||||
* get the role given from the config.
|
||||
*
|
||||
* @param mixed $entity
|
||||
* @param mixed $_format
|
||||
*/
|
||||
protected function getRoleFor(string $action, Request $request, $entity, $_format): string
|
||||
protected function getRoleFor(string $action, Request $request, mixed $entity, mixed $_format): string
|
||||
{
|
||||
$actionConfig = $this->getActionConfig($action);
|
||||
|
||||
@@ -135,7 +132,7 @@ abstract class AbstractCRUDController extends AbstractController
|
||||
*
|
||||
* @param mixed $_format
|
||||
*/
|
||||
protected function countEntities(string $action, Request $request, $_format): int
|
||||
protected function countEntities(string $action, Request $request, mixed $_format): int
|
||||
{
|
||||
return $this->buildQueryEntities($action, $request)
|
||||
->select('COUNT(e)')
|
||||
@@ -171,10 +168,8 @@ abstract class AbstractCRUDController extends AbstractController
|
||||
* get the instance of the entity with the given id.
|
||||
*
|
||||
* @throw Symfony\Component\HttpKernel\Exception\NotFoundHttpException if the object is not found
|
||||
*
|
||||
* @param mixed $action
|
||||
*/
|
||||
protected function getEntity($action, string $id, Request $request): object
|
||||
protected function getEntity(mixed $action, string $id, Request $request): object
|
||||
{
|
||||
$e = $this
|
||||
->getDoctrine()
|
||||
@@ -205,10 +200,8 @@ abstract class AbstractCRUDController extends AbstractController
|
||||
|
||||
/**
|
||||
* Get the result of the query.
|
||||
*
|
||||
* @param mixed $query
|
||||
*/
|
||||
protected function getQueryResult(string $action, Request $request, string $_format, int $totalItems, PaginatorInterface $paginator, $query)
|
||||
protected function getQueryResult(string $action, Request $request, string $_format, int $totalItems, PaginatorInterface $paginator, mixed $query)
|
||||
{
|
||||
return $query->getQuery()->getResult();
|
||||
}
|
||||
@@ -220,41 +213,32 @@ abstract class AbstractCRUDController extends AbstractController
|
||||
|
||||
/**
|
||||
* Called on post check ACL.
|
||||
*
|
||||
* @param mixed $entity
|
||||
*/
|
||||
protected function onPostCheckACL(string $action, Request $request, string $_format, $entity): ?Response
|
||||
protected function onPostCheckACL(string $action, Request $request, string $_format, mixed $entity): ?Response
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called on post fetch entity.
|
||||
*
|
||||
* @param mixed $entity
|
||||
* @param mixed $_format
|
||||
*/
|
||||
protected function onPostFetchEntity(string $action, Request $request, $entity, $_format): ?Response
|
||||
protected function onPostFetchEntity(string $action, Request $request, mixed $entity, mixed $_format): ?Response
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method used by indexAction.
|
||||
*
|
||||
* @param mixed $query
|
||||
*/
|
||||
protected function onPostIndexBuildQuery(string $action, Request $request, string $_format, int $totalItems, PaginatorInterface $paginator, $query): ?Response
|
||||
protected function onPostIndexBuildQuery(string $action, Request $request, string $_format, int $totalItems, PaginatorInterface $paginator, mixed $query): ?Response
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method used by indexAction.
|
||||
*
|
||||
* @param mixed $entities
|
||||
*/
|
||||
protected function onPostIndexFetchQuery(string $action, Request $request, string $_format, int $totalItems, PaginatorInterface $paginator, $entities): ?Response
|
||||
protected function onPostIndexFetchQuery(string $action, Request $request, string $_format, int $totalItems, PaginatorInterface $paginator, mixed $entities): ?Response
|
||||
{
|
||||
return null;
|
||||
}
|
||||
@@ -274,11 +258,8 @@ abstract class AbstractCRUDController extends AbstractController
|
||||
|
||||
/**
|
||||
* Add ordering fields in the query build by self::queryEntities.
|
||||
*
|
||||
* @param mixed $query
|
||||
* @param mixed $_format
|
||||
*/
|
||||
protected function orderQuery(string $action, $query, Request $request, PaginatorInterface $paginator, $_format)
|
||||
protected function orderQuery(string $action, mixed $query, Request $request, PaginatorInterface $paginator, mixed $_format)
|
||||
{
|
||||
return $query;
|
||||
}
|
||||
|
@@ -32,31 +32,18 @@ class ApiController extends AbstractCRUDController
|
||||
/**
|
||||
* Base method for handling api action.
|
||||
*
|
||||
* @param mixed $id
|
||||
* @param string $_format
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function entityApi(Request $request, $id, ?string $_format = 'json'): Response
|
||||
public function entityApi(Request $request, mixed $id, ?string $_format = 'json'): Response
|
||||
{
|
||||
switch ($request->getMethod()) {
|
||||
case Request::METHOD_GET:
|
||||
case Request::METHOD_HEAD:
|
||||
return $this->entityGet('_entity', $request, $id, $_format);
|
||||
|
||||
case Request::METHOD_PUT:
|
||||
case Request::METHOD_PATCH:
|
||||
return $this->entityPut('_entity', $request, $id, $_format);
|
||||
|
||||
case Request::METHOD_POST:
|
||||
return $this->entityPostAction('_entity', $request, $id);
|
||||
|
||||
case Request::METHOD_DELETE:
|
||||
return $this->entityDelete('_entity', $request, $id, $_format);
|
||||
|
||||
default:
|
||||
throw new BadRequestHttpException('This method is not implemented');
|
||||
}
|
||||
return match ($request->getMethod()) {
|
||||
Request::METHOD_GET, Request::METHOD_HEAD => $this->entityGet('_entity', $request, $id, $_format),
|
||||
Request::METHOD_PUT, Request::METHOD_PATCH => $this->entityPut('_entity', $request, $id, $_format),
|
||||
Request::METHOD_POST => $this->entityPostAction('_entity', $request, $id),
|
||||
Request::METHOD_DELETE => $this->entityDelete('_entity', $request, $id, $_format),
|
||||
default => throw new BadRequestHttpException('This method is not implemented'),
|
||||
};
|
||||
}
|
||||
|
||||
public function entityDelete($action, Request $request, $id, string $_format): Response
|
||||
@@ -115,13 +102,10 @@ class ApiController extends AbstractCRUDController
|
||||
|
||||
public function entityPost(Request $request, $_format): Response
|
||||
{
|
||||
switch ($request->getMethod()) {
|
||||
case Request::METHOD_POST:
|
||||
return $this->entityPostAction('_entity', $request, $_format);
|
||||
|
||||
default:
|
||||
throw new BadRequestHttpException('This method is not implemented');
|
||||
}
|
||||
return match ($request->getMethod()) {
|
||||
Request::METHOD_POST => $this->entityPostAction('_entity', $request, $_format),
|
||||
default => throw new BadRequestHttpException('This method is not implemented'),
|
||||
};
|
||||
}
|
||||
|
||||
public function entityPut($action, Request $request, $id, string $_format): Response
|
||||
@@ -199,14 +183,10 @@ class ApiController extends AbstractCRUDController
|
||||
*/
|
||||
public function indexApi(Request $request, string $_format)
|
||||
{
|
||||
switch ($request->getMethod()) {
|
||||
case Request::METHOD_GET:
|
||||
case REQUEST::METHOD_HEAD:
|
||||
return $this->indexApiAction('_index', $request, $_format);
|
||||
|
||||
default:
|
||||
throw $this->createNotFoundException('This method is not supported');
|
||||
}
|
||||
return match ($request->getMethod()) {
|
||||
Request::METHOD_GET, REQUEST::METHOD_HEAD => $this->indexApiAction('_index', $request, $_format),
|
||||
default => throw $this->createNotFoundException('This method is not supported'),
|
||||
};
|
||||
}
|
||||
|
||||
public function onBeforeSerialize(string $action, Request $request, $_format, $entity): ?Response
|
||||
@@ -242,7 +222,7 @@ class ApiController extends AbstractCRUDController
|
||||
* @throw BadRequestException if unable to deserialize the posted data
|
||||
* @throw BadRequestException if the method is not POST or DELETE
|
||||
*/
|
||||
protected function addRemoveSomething(string $action, $id, Request $request, string $_format, string $property, string $postedDataType, array $postedDataContext = [], bool $forcePersist = false): Response
|
||||
protected function addRemoveSomething(string $action, mixed $id, Request $request, string $_format, string $property, string $postedDataType, array $postedDataContext = [], bool $forcePersist = false): Response
|
||||
{
|
||||
$entity = $this->getEntity($action, $id, $request);
|
||||
|
||||
@@ -277,23 +257,11 @@ class ApiController extends AbstractCRUDController
|
||||
'data: %s', $e->getMessage()), $e, 0);
|
||||
}
|
||||
|
||||
switch ($request->getMethod()) {
|
||||
case Request::METHOD_DELETE:
|
||||
// oups... how to use property accessor to remove element ?
|
||||
/* @phpstan-ignore-next-line as we do not find a simpler way to do this */
|
||||
$entity->{'remove' . ucfirst($property)}($postedData);
|
||||
|
||||
break;
|
||||
|
||||
case Request::METHOD_POST:
|
||||
/* @phpstan-ignore-next-line as we do not find a simpler way to do this */
|
||||
$entity->{'add' . ucfirst($property)}($postedData);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new BadRequestHttpException('this method is not supported');
|
||||
}
|
||||
match ($request->getMethod()) {
|
||||
Request::METHOD_DELETE => $entity->{'remove' . ucfirst($property)}($postedData),
|
||||
Request::METHOD_POST => $entity->{'add' . ucfirst($property)}($postedData),
|
||||
default => throw new BadRequestHttpException('this method is not supported'),
|
||||
};
|
||||
|
||||
$errors = $this->validate($action, $request, $_format, $entity, [$postedData]);
|
||||
|
||||
@@ -319,21 +287,16 @@ class ApiController extends AbstractCRUDController
|
||||
if ($response instanceof Response) {
|
||||
return $response;
|
||||
}
|
||||
|
||||
switch ($request->getMethod()) {
|
||||
case Request::METHOD_DELETE:
|
||||
return $this->json('', Response::HTTP_OK);
|
||||
|
||||
case Request::METHOD_POST:
|
||||
return $this->json(
|
||||
$postedData,
|
||||
Response::HTTP_OK,
|
||||
[],
|
||||
$this->getContextForSerializationPostAlter($action, $request, $_format, $entity, [$postedData])
|
||||
);
|
||||
}
|
||||
|
||||
throw new Exception('Unable to handle such request method.');
|
||||
return match ($request->getMethod()) {
|
||||
Request::METHOD_DELETE => $this->json('', Response::HTTP_OK),
|
||||
Request::METHOD_POST => $this->json(
|
||||
$postedData,
|
||||
Response::HTTP_OK,
|
||||
[],
|
||||
$this->getContextForSerializationPostAlter($action, $request, $_format, $entity, [$postedData])
|
||||
),
|
||||
default => throw new Exception('Unable to handle such request method.'),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -376,7 +339,7 @@ class ApiController extends AbstractCRUDController
|
||||
* @param mixed $id
|
||||
* @param mixed $_format
|
||||
*/
|
||||
protected function entityGet(string $action, Request $request, $id, $_format = 'html'): Response
|
||||
protected function entityGet(string $action, Request $request, mixed $id, mixed $_format = 'html'): Response
|
||||
{
|
||||
$entity = $this->getEntity($action, $id, $request);
|
||||
|
||||
@@ -474,18 +437,11 @@ class ApiController extends AbstractCRUDController
|
||||
|
||||
protected function getContextForSerialization(string $action, Request $request, string $_format, $entity): array
|
||||
{
|
||||
switch ($request->getMethod()) {
|
||||
case Request::METHOD_GET:
|
||||
return ['groups' => ['read']];
|
||||
|
||||
case Request::METHOD_PUT:
|
||||
case Request::METHOD_PATCH:
|
||||
case Request::METHOD_POST:
|
||||
return ['groups' => ['write']];
|
||||
|
||||
default:
|
||||
throw new LogicException('get context for serialization is not implemented for this method');
|
||||
}
|
||||
return match ($request->getMethod()) {
|
||||
Request::METHOD_GET => ['groups' => ['read']],
|
||||
Request::METHOD_PUT, Request::METHOD_PATCH, Request::METHOD_POST => ['groups' => ['write']],
|
||||
default => throw new LogicException('get context for serialization is not implemented for this method'),
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -496,7 +452,7 @@ class ApiController extends AbstractCRUDController
|
||||
*
|
||||
* @param mixed $entity
|
||||
*/
|
||||
protected function getContextForSerializationPostAlter(string $action, Request $request, string $_format, $entity, array $more = []): array
|
||||
protected function getContextForSerializationPostAlter(string $action, Request $request, string $_format, mixed $entity, array $more = []): array
|
||||
{
|
||||
return ['groups' => ['read']];
|
||||
}
|
||||
@@ -533,7 +489,7 @@ class ApiController extends AbstractCRUDController
|
||||
* @param string $action
|
||||
* @param mixed $_format
|
||||
*/
|
||||
protected function indexApiAction($action, Request $request, $_format)
|
||||
protected function indexApiAction($action, Request $request, mixed $_format)
|
||||
{
|
||||
$this->onPreIndex($action, $request, $_format);
|
||||
|
||||
@@ -611,10 +567,8 @@ class ApiController extends AbstractCRUDController
|
||||
|
||||
/**
|
||||
* Serialize collections.
|
||||
*
|
||||
* @param mixed $entities
|
||||
*/
|
||||
protected function serializeCollection(string $action, Request $request, string $_format, PaginatorInterface $paginator, $entities): Response
|
||||
protected function serializeCollection(string $action, Request $request, string $_format, PaginatorInterface $paginator, mixed $entities): Response
|
||||
{
|
||||
$model = new Collection($entities, $paginator);
|
||||
|
||||
|
@@ -62,17 +62,15 @@ class CRUDController extends AbstractController
|
||||
*
|
||||
* @param mixed $id
|
||||
*/
|
||||
public function edit(Request $request, $id): Response
|
||||
public function edit(Request $request, mixed $id): Response
|
||||
{
|
||||
return $this->formEditAction('edit', $request, $id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the context for the serialization.
|
||||
*
|
||||
* @param mixed $entity
|
||||
*/
|
||||
public function getContextForSerialization(string $action, Request $request, $entity, string $_format): array
|
||||
public function getContextForSerialization(string $action, Request $request, mixed $entity, string $_format): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
@@ -125,7 +123,7 @@ class CRUDController extends AbstractController
|
||||
*
|
||||
* @param mixed $id
|
||||
*/
|
||||
public function view(Request $request, $id): Response
|
||||
public function view(Request $request, mixed $id): Response
|
||||
{
|
||||
return $this->viewAction('view', $request, $id);
|
||||
}
|
||||
@@ -188,7 +186,7 @@ class CRUDController extends AbstractController
|
||||
*
|
||||
* @throws \Symfony\Component\Security\Core\Exception\AccessDeniedHttpException
|
||||
*/
|
||||
protected function checkACL(string $action, $entity)
|
||||
protected function checkACL(string $action, mixed $entity)
|
||||
{
|
||||
$this->denyAccessUnlessGranted($this->getRoleFor($action), $entity);
|
||||
}
|
||||
@@ -228,7 +226,7 @@ class CRUDController extends AbstractController
|
||||
* @param mixed $entity
|
||||
* @param string $formClass
|
||||
*/
|
||||
protected function createFormFor(string $action, $entity, ?string $formClass = null, array $formOptions = []): FormInterface
|
||||
protected function createFormFor(string $action, mixed $entity, ?string $formClass = null, array $formOptions = []): FormInterface
|
||||
{
|
||||
$formClass ??= $this->getFormClassFor($action);
|
||||
|
||||
@@ -491,7 +489,7 @@ class CRUDController extends AbstractController
|
||||
*
|
||||
* @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException
|
||||
*/
|
||||
protected function formEditAction(string $action, Request $request, $id, ?string $formClass = null, array $formOptions = []): Response
|
||||
protected function formEditAction(string $action, Request $request, mixed $id, ?string $formClass = null, array $formOptions = []): Response
|
||||
{
|
||||
$entity = $this->getEntity($action, $id, $request);
|
||||
|
||||
@@ -572,29 +570,15 @@ class CRUDController extends AbstractController
|
||||
* Generate a success message when a form could be flushed successfully.
|
||||
*
|
||||
* @param string $action
|
||||
* @param mixed $entity
|
||||
*/
|
||||
protected function generateFormSuccessMessage($action, $entity): string
|
||||
protected function generateFormSuccessMessage($action, mixed $entity): string
|
||||
{
|
||||
switch ($action) {
|
||||
case 'edit':
|
||||
$msg = 'crud.edit.success';
|
||||
|
||||
break;
|
||||
|
||||
case 'new':
|
||||
$msg = 'crud.new.success';
|
||||
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
$msg = 'crud.delete.success';
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
$msg = 'crud.default.success';
|
||||
}
|
||||
$msg = match ($action) {
|
||||
'edit' => 'crud.edit.success',
|
||||
'new' => 'crud.new.success',
|
||||
'delete' => 'crud.delete.success',
|
||||
default => 'crud.default.success',
|
||||
};
|
||||
|
||||
return $this->getTranslator()->trans($msg);
|
||||
}
|
||||
@@ -652,11 +636,10 @@ class CRUDController extends AbstractController
|
||||
* get the instance of the entity with the given id.
|
||||
*
|
||||
* @param string $id
|
||||
* @param mixed $action
|
||||
*
|
||||
* @return object
|
||||
*/
|
||||
protected function getEntity($action, $id, Request $request): ?object
|
||||
protected function getEntity(mixed $action, $id, Request $request): ?object
|
||||
{
|
||||
return $this->getDoctrine()
|
||||
->getRepository($this->getEntityClass())
|
||||
@@ -763,33 +746,22 @@ class CRUDController extends AbstractController
|
||||
*
|
||||
* @return string the path to the template
|
||||
*/
|
||||
protected function getTemplateFor($action, $entity, Request $request)
|
||||
protected function getTemplateFor($action, mixed $entity, Request $request)
|
||||
{
|
||||
if ($this->hasCustomTemplate($action, $entity, $request)) {
|
||||
return $this->getActionConfig($action)['template'];
|
||||
}
|
||||
|
||||
switch ($action) {
|
||||
case 'new':
|
||||
return '@ChillMain/CRUD/new.html.twig';
|
||||
|
||||
case 'edit':
|
||||
return '@ChillMain/CRUD/edit.html.twig';
|
||||
|
||||
case 'index':
|
||||
return '@ChillMain/CRUD/index.html.twig';
|
||||
|
||||
case 'view':
|
||||
return '@ChillMain/CRUD/view.html.twig';
|
||||
|
||||
case 'delete':
|
||||
return '@ChillMain/CRUD/delete.html.twig';
|
||||
|
||||
default:
|
||||
throw new LogicException("the view for action {$action} is not "
|
||||
. 'defined. You should override ' . __METHOD__ . ' to add this '
|
||||
. 'action');
|
||||
}
|
||||
return match ($action) {
|
||||
'new' => '@ChillMain/CRUD/new.html.twig',
|
||||
'edit' => '@ChillMain/CRUD/edit.html.twig',
|
||||
'index' => '@ChillMain/CRUD/index.html.twig',
|
||||
'view' => '@ChillMain/CRUD/view.html.twig',
|
||||
'delete' => '@ChillMain/CRUD/delete.html.twig',
|
||||
default => throw new LogicException("the view for action {$action} is not "
|
||||
. 'defined. You should override ' . __METHOD__ . ' to add this '
|
||||
. 'action'),
|
||||
};
|
||||
}
|
||||
|
||||
protected function getTranslator(): TranslatorInterface
|
||||
@@ -909,22 +881,17 @@ class CRUDController extends AbstractController
|
||||
*
|
||||
* @return \Symfony\Component\HttpFoundation\RedirectResponse
|
||||
*/
|
||||
protected function onBeforeRedirectAfterSubmission(string $action, $entity, FormInterface $form, Request $request)
|
||||
protected function onBeforeRedirectAfterSubmission(string $action, mixed $entity, FormInterface $form, Request $request)
|
||||
{
|
||||
$next = $request->request->get('submit', 'save-and-close');
|
||||
|
||||
switch ($next) {
|
||||
case 'save-and-close':
|
||||
return $this->redirectToRoute('chill_crud_' . $this->getCrudName() . '_index');
|
||||
|
||||
case 'save-and-new':
|
||||
return $this->redirectToRoute('chill_crud_' . $this->getCrudName() . '_new', $request->query->all());
|
||||
|
||||
default:
|
||||
return $this->redirectToRoute('chill_crud_' . $this->getCrudName() . '_view', [
|
||||
'id' => $entity->getId(),
|
||||
]);
|
||||
}
|
||||
return match ($next) {
|
||||
'save-and-close' => $this->redirectToRoute('chill_crud_' . $this->getCrudName() . '_index'),
|
||||
'save-and-new' => $this->redirectToRoute('chill_crud_' . $this->getCrudName() . '_new', $request->query->all()),
|
||||
default => $this->redirectToRoute('chill_crud_' . $this->getCrudName() . '_view', [
|
||||
'id' => $entity->getId(),
|
||||
]),
|
||||
};
|
||||
}
|
||||
|
||||
protected function onFormValid(string $action, object $entity, FormInterface $form, Request $request)
|
||||
@@ -958,19 +925,15 @@ class CRUDController extends AbstractController
|
||||
|
||||
/**
|
||||
* method used by indexAction.
|
||||
*
|
||||
* @param mixed $query
|
||||
*/
|
||||
protected function onPostIndexBuildQuery(string $action, Request $request, int $totalItems, PaginatorInterface $paginator, $query)
|
||||
protected function onPostIndexBuildQuery(string $action, Request $request, int $totalItems, PaginatorInterface $paginator, mixed $query)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* method used by indexAction.
|
||||
*
|
||||
* @param mixed $entities
|
||||
*/
|
||||
protected function onPostIndexFetchQuery(string $action, Request $request, int $totalItems, PaginatorInterface $paginator, $entities)
|
||||
protected function onPostIndexFetchQuery(string $action, Request $request, int $totalItems, PaginatorInterface $paginator, mixed $entities)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -1091,7 +1054,7 @@ class CRUDController extends AbstractController
|
||||
* @param mixed $id
|
||||
* @param mixed $_format
|
||||
*/
|
||||
protected function viewAction(string $action, Request $request, $id, $_format = 'html'): Response
|
||||
protected function viewAction(string $action, Request $request, mixed $id, mixed $_format = 'html'): Response
|
||||
{
|
||||
$entity = $this->getEntity($action, $id, $request);
|
||||
|
||||
|
Reference in New Issue
Block a user