Lines 100.00% 12 / 12
Functions and Methods 100.00% 1 / 1
Classes and Traits 100.00% 1 / 1
Name Lines Functions and Methods CRAP Classes and Traits
Create 100.00% 12 / 12 100.00% 1 / 1 3 100.00% 1 / 1
 __invoke 100.00% 12 / 12 100.00% 1 / 1 3
1<?php
2
3namespace App\Controller\User;
4
5use App\Controller\BaseController;
6use App\Entity\User;
7use App\Enum\UserRole;
8use App\Form\UserType;
9use Doctrine\ORM\EntityManagerInterface;
10use Symfony\Component\HttpFoundation\Request;
11use Symfony\Component\HttpFoundation\Response;
12use Symfony\Component\Routing\Attribute\Route;
13use Symfony\Component\Security\Http\Attribute\IsGranted;
14
15#[Route('/user/new', name: 'app_user_new', methods: ['GET', 'POST'])]
16#[IsGranted(UserRole::ADMIN->value)]
17final class Create extends BaseController
18{
19    public function __invoke(Request $request, EntityManagerInterface $entityManager): Response
20    {
21        $user = new User();
22        $form = $this->createForm(UserType::class, $user);
23        $form->handleRequest($request);
24
25        if ($form->isSubmitted() && $form->isValid()) {
26            $entityManager->persist($user);
27            $entityManager->flush();
28
29            $this->addFlash('success', 'User has been created.');
30
31            return $this->redirectToRoute('app_user_index', [], Response::HTTP_SEE_OTHER);
32        }
33
34        return $this->render('user/new.html.twig', [
35            'user' => $user,
36            'form' => $form,
37        ]);
38    }
39}