diff --git a/src/Actions/UniqElementsAction.php b/src/Actions/UniqElementsAction.php new file mode 100644 index 0000000000000000000000000000000000000000..3aa0e139f1779dcbe693c239f8b58a5ef0f3845d --- /dev/null +++ b/src/Actions/UniqElementsAction.php @@ -0,0 +1,16 @@ +<?php + +namespace App\Actions; + +class UniqElementsAction +{ + /** + * УдалÑет дубликаты, оÑтавив только уникальные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ + * @param array $array + * @return array + */ + public static function act(array $array): array + { + return array_unique($array, SORT_REGULAR); + } +} \ No newline at end of file diff --git a/src/Controller/UniqElementsController.php b/src/Controller/UniqElementsController.php new file mode 100644 index 0000000000000000000000000000000000000000..442c9d706cd88d708688f9dc1a5ecb3260d812a1 --- /dev/null +++ b/src/Controller/UniqElementsController.php @@ -0,0 +1,19 @@ +<?php + +namespace App\Controller; + +use App\Actions\UniqElementsAction; +use App\Requests\UniqElementsRequest; +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Attribute\Route; + +class UniqElementsController extends AbstractController +{ + #[Route('/uniq/elements', name: 'app_uniq_elements', methods: ['POST'])] + public function index(UniqElementsRequest $request, UniqElementsAction $action): Response + { + return new JsonResponse($action->act($request->serialise())); + } +} diff --git a/src/Requests/UniqElementsRequest.php b/src/Requests/UniqElementsRequest.php new file mode 100644 index 0000000000000000000000000000000000000000..111731374bbdde336e946a1623fdb42512fe8939 --- /dev/null +++ b/src/Requests/UniqElementsRequest.php @@ -0,0 +1,21 @@ +<?php + +namespace App\Requests; + +use Symfony\Component\Validator\Constraints\Type; +use Symfony\Contracts\Service\Attribute\Required; + +class UniqElementsRequest extends BaseRequest +{ + #[Type('array')] + #[Required] + public $data; + + /** + * @return mixed + */ + public function serialise(): mixed + { + return $this->data; + } +} diff --git a/templates/uniq_elements/index.html.twig b/templates/uniq_elements/index.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..d56494b7519d691246e25955e4d51e8d7523b566 --- /dev/null +++ b/templates/uniq_elements/index.html.twig @@ -0,0 +1,20 @@ +{% extends 'base.html.twig' %} + +{% block title %}Hello UniqElementsController!{% endblock %} + +{% block body %} +<style> + .example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; } + .example-wrapper code { background: #F5F5F5; padding: 2px 6px; } +</style> + +<div class="example-wrapper"> + <h1>Hello {{ controller_name }}! ✅</h1> + + This friendly message is coming from: + <ul> + <li>Your controller at <code>/home/tamanit/myProj/iqdevTranningProgram/src/Controller/UniqElementsController.php</code></li> + <li>Your template at <code>/home/tamanit/myProj/iqdevTranningProgram/templates/uniq_elements/index.html.twig</code></li> + </ul> +</div> +{% endblock %}