Loading src/Actions/CountFriday13Action.php 0 → 100644 +27 −0 Original line number Diff line number Diff line <?php namespace App\Actions; use DateTimeImmutable; class CountFriday13Action { /** * Вернет все пятницы 13 в году * @param int $year год, в котором необходимо произвести расчет * @return DateTimeImmutable[] */ public function act(int $year): array { $AllFri13 = []; for ($i = 1; $i <= 12; $i++) { $next13 = (new DateTimeImmutable())->setDate($year, $i, 13); if ($next13->format("D") === "Fri") { $AllFri13[] = $next13; } } return $AllFri13; } } src/Controller/CountFriday13Controller.php 0 → 100644 +25 −0 Original line number Diff line number Diff line <?php namespace App\Controller; use App\Actions\CountFriday13Action; use App\Requests\AllFri13Request; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class CountFriday13Controller extends AbstractController { /** * git Контроллер вернет все пятницы 13 в году используя countFriday13 функцию * @param AllFri13Request $request * @param CountFriday13Action $action * @return Response */ #[Route('/count/friday13', name: 'app_count_friday13')] public function index(AllFri13Request $request, CountFriday13Action $action): Response { return new JsonResponse($action->act($request->serialise())); } } src/Requests/AllFri13Request.php 0 → 100644 +21 −0 Original line number Diff line number Diff line <?php namespace App\Requests; use Symfony\Component\Validator\Constraints\Positive; use Symfony\Component\Validator\Constraints\Type; class AllFri13Request extends BaseRequest { #[Type('integer')] #[Positive] public $year; /** * @return mixed */ public function serialise(): int { return (int) $this->year; } } No newline at end of file Loading
src/Actions/CountFriday13Action.php 0 → 100644 +27 −0 Original line number Diff line number Diff line <?php namespace App\Actions; use DateTimeImmutable; class CountFriday13Action { /** * Вернет все пятницы 13 в году * @param int $year год, в котором необходимо произвести расчет * @return DateTimeImmutable[] */ public function act(int $year): array { $AllFri13 = []; for ($i = 1; $i <= 12; $i++) { $next13 = (new DateTimeImmutable())->setDate($year, $i, 13); if ($next13->format("D") === "Fri") { $AllFri13[] = $next13; } } return $AllFri13; } }
src/Controller/CountFriday13Controller.php 0 → 100644 +25 −0 Original line number Diff line number Diff line <?php namespace App\Controller; use App\Actions\CountFriday13Action; use App\Requests\AllFri13Request; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class CountFriday13Controller extends AbstractController { /** * git Контроллер вернет все пятницы 13 в году используя countFriday13 функцию * @param AllFri13Request $request * @param CountFriday13Action $action * @return Response */ #[Route('/count/friday13', name: 'app_count_friday13')] public function index(AllFri13Request $request, CountFriday13Action $action): Response { return new JsonResponse($action->act($request->serialise())); } }
src/Requests/AllFri13Request.php 0 → 100644 +21 −0 Original line number Diff line number Diff line <?php namespace App\Requests; use Symfony\Component\Validator\Constraints\Positive; use Symfony\Component\Validator\Constraints\Type; class AllFri13Request extends BaseRequest { #[Type('integer')] #[Positive] public $year; /** * @return mixed */ public function serialise(): int { return (int) $this->year; } } No newline at end of file