Commit b6294936 authored by Адлан Шамавов's avatar Адлан Шамавов
Browse files

Merge branch 'PTPS_Controller_6' into PTPS_Controller_7

parents 512b4a2c ecb2ff0f
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ class Functions
     * @param array $array
     * @return array
     */

    public function sortPrice(array $array): array
    {
        $prices = array_column($array, 'price');
@@ -157,7 +158,6 @@ class Functions
        return (int)$dateInterval->format("%a") + 1;
    }


    /**
     * Вернет все пятницы 13 в году
     * @param int $year год, в котором необходимо произвести расчет
@@ -188,4 +188,3 @@ class Functions
        return (int)$dateInterval->format("%a") ;
    }
}
 No newline at end of file
+21 −5
Original line number Diff line number Diff line
@@ -2,20 +2,36 @@

namespace App\Controller;

use App\Action\Functions;
use App\Validation\DateValidation;
use DateInterval;
use DatePeriod;
use DateTime;
use DateTimeImmutable;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Attribute\Route;

class HomeController extends AbstractController
{
    private Functions $functions;
    private function countFriday13(int $year): iterable {
        $stardDate = new DateTime("{$year}-01-01 Friday");
        $year += 1;
        $endDate = new DateTime("{$year}-01-01");
        $interval = new DateInterval('P7D');
        foreach(new DatePeriod($stardDate, $interval, $endDate) as $day) {
            yield new DateTimeImmutable($day->format("Y-m-d"));
        }
    }

    public function __construct(Functions $functions)

    #[Route('/{year}', name: 'home')]
    public function home(int $year): Response
    {
        $this->functions = $functions;
        $fridays = array();
        foreach($this->countFriday13($year) as $date) {
            $fridays[] = $date->format("Y-m-d l");
        }
        return $this->render('home.html.twig', ['fridays' => $fridays]);
    }

    #[Route('/{startDate}/{endDate}', name: 'home')] // 01-01-2024
+26 −0
Original line number Diff line number Diff line
<?php

namespace App\Validation;

class ArrayValidation
{
    public static function validateFunc1(array $array): bool
    {
        $prices = array_column($array, 'price');
        $counts = array_column($array, 'count');
        return ctype_digit(implode('',$prices)) && ctype_digit(implode('', $counts));
    }

    public static function validateFunc2(array $array): bool
    {
        $ids = array_column($array, 'id');
        $ages = array_column($array, 'age');
        return ctype_digit(implode('', $ids)) && ctype_digit(implode('', $ages));
    }

    public static function validateFunc4(array $array): bool
    {
        $depths = array_column($array, 'depth');
        return ctype_digit(implode('', $depths));
    }
}
 No newline at end of file