Loading public/public/Actions/ReadLogFileAction.php 0 → 100644 +26 −0 Original line number Diff line number Diff line <?php namespace App\Actions; use Exception; class ReadLogFileAction { /** * Принимает путь до файла, * проверяет, что файл существует и выводит пользователю весь контент файла * (файл можешь создать любой) * * @param string $filePath путь до файла * @return void * @throws Exception при отсутсвии фаила по переданному пути */ public static function read(string $filePath): void { if (!file_exists($filePath)) { throw new Exception("По данному пути ничего не найдено: $filePath"); } echo file_get_contents($filePath); } } public/public/Actions/UniqElementsAction.php 0 → 100644 +16 −0 Original line number Diff line number Diff line <?php namespace App\Actions; class UniqElementsAction { /** * Удаляет дубликаты, оставив только уникальные значения * @param array $array * @return array */ public static function uniqElements(array $array): array { return array_unique($array, SORT_REGULAR); } } No newline at end of file public/public/TestData/TestData.php +19 −1 Original line number Diff line number Diff line Loading @@ -8,9 +8,27 @@ namespace App\TestData; class TestData { public const FILE_PATH = "TestData/FileToRead.txt"; public const NON_UNIQE_ARRAY = [ [ 'laravel', 'php', ], [ 'codeigniter', 'php', ], [ 'laravel', 'php', ], [ 'c++', 'java', ], ]; public const START_DATE = "13.04.2024"; public const END_DATE = "13.04.2025"; Loading public/public/index.php +16 −9 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ require_once __DIR__ . '/../vendor/autoload.php'; use App\Actions\ReadLogFileAction; use App\Actions\UniqElementsAction; use App\Actions\DiffDaysAction; use App\Actions\CountFriday13; use App\Actions\HowDaysToNYAction; Loading @@ -16,16 +18,29 @@ try { foreach (ReadFileLineByLineAction::read(TestData::FILE_PATH) as $line) { echo $line; } echo '<hr>'; echo 'ReadLogFileAction: <br>'; try { ReadLogFileAction::read(TestData::FILE_PATH); } catch (Exception $ex) { echo $ex->getMessage(); } echo '<hr>'; echo 'UniqElementsAction: <br>'; var_dump(UniqElementsAction::uniqElements(TestData::NON_UNIQE_ARRAY)); echo '<hr>'; echo 'IdSearchAction: <br>'; var_dump(IdSearchAction::search(TestData::ARRAY_FOR_SEARCHING)); echo '<hr>'; echo 'DiffDaysAction <br>'; echo 'PrepareMenuAction: <br>'; var_dump(PrepareMenuAction::prepare(TestData::RAW_MENU)); echo '<hr>' echo 'DiffDaysAction <br>' var_dump(DiffDaysAction::count( new DateTimeImmutable(TestData::START_DATE), new DateTimeImmutable(TestData::END_DATE) Loading @@ -40,14 +55,6 @@ echo 'SortPriceAction: <br>'; var_dump(SortPriceAction::sort(TestData::PRICE_COUNT_ARRAY)); echo '<hr>'; echo 'PrepareMenuAction: <br>'; var_dump(PrepareMenuAction::prepare(TestData::RAW_MENU)); echo '<hr>'; echo 'IdSearchAction: <br>'; var_dump(IdSearchAction::search(TestData::ARRAY_FOR_SEARCHING)); echo '<hr>'; echo 'CountFriday13: <br>'; var_dump(CountFriday13::count(TestData::YEAR)); echo '<hr>'; Loading
public/public/Actions/ReadLogFileAction.php 0 → 100644 +26 −0 Original line number Diff line number Diff line <?php namespace App\Actions; use Exception; class ReadLogFileAction { /** * Принимает путь до файла, * проверяет, что файл существует и выводит пользователю весь контент файла * (файл можешь создать любой) * * @param string $filePath путь до файла * @return void * @throws Exception при отсутсвии фаила по переданному пути */ public static function read(string $filePath): void { if (!file_exists($filePath)) { throw new Exception("По данному пути ничего не найдено: $filePath"); } echo file_get_contents($filePath); } }
public/public/Actions/UniqElementsAction.php 0 → 100644 +16 −0 Original line number Diff line number Diff line <?php namespace App\Actions; class UniqElementsAction { /** * Удаляет дубликаты, оставив только уникальные значения * @param array $array * @return array */ public static function uniqElements(array $array): array { return array_unique($array, SORT_REGULAR); } } No newline at end of file
public/public/TestData/TestData.php +19 −1 Original line number Diff line number Diff line Loading @@ -8,9 +8,27 @@ namespace App\TestData; class TestData { public const FILE_PATH = "TestData/FileToRead.txt"; public const NON_UNIQE_ARRAY = [ [ 'laravel', 'php', ], [ 'codeigniter', 'php', ], [ 'laravel', 'php', ], [ 'c++', 'java', ], ]; public const START_DATE = "13.04.2024"; public const END_DATE = "13.04.2025"; Loading
public/public/index.php +16 −9 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ require_once __DIR__ . '/../vendor/autoload.php'; use App\Actions\ReadLogFileAction; use App\Actions\UniqElementsAction; use App\Actions\DiffDaysAction; use App\Actions\CountFriday13; use App\Actions\HowDaysToNYAction; Loading @@ -16,16 +18,29 @@ try { foreach (ReadFileLineByLineAction::read(TestData::FILE_PATH) as $line) { echo $line; } echo '<hr>'; echo 'ReadLogFileAction: <br>'; try { ReadLogFileAction::read(TestData::FILE_PATH); } catch (Exception $ex) { echo $ex->getMessage(); } echo '<hr>'; echo 'UniqElementsAction: <br>'; var_dump(UniqElementsAction::uniqElements(TestData::NON_UNIQE_ARRAY)); echo '<hr>'; echo 'IdSearchAction: <br>'; var_dump(IdSearchAction::search(TestData::ARRAY_FOR_SEARCHING)); echo '<hr>'; echo 'DiffDaysAction <br>'; echo 'PrepareMenuAction: <br>'; var_dump(PrepareMenuAction::prepare(TestData::RAW_MENU)); echo '<hr>' echo 'DiffDaysAction <br>' var_dump(DiffDaysAction::count( new DateTimeImmutable(TestData::START_DATE), new DateTimeImmutable(TestData::END_DATE) Loading @@ -40,14 +55,6 @@ echo 'SortPriceAction: <br>'; var_dump(SortPriceAction::sort(TestData::PRICE_COUNT_ARRAY)); echo '<hr>'; echo 'PrepareMenuAction: <br>'; var_dump(PrepareMenuAction::prepare(TestData::RAW_MENU)); echo '<hr>'; echo 'IdSearchAction: <br>'; var_dump(IdSearchAction::search(TestData::ARRAY_FOR_SEARCHING)); echo '<hr>'; echo 'CountFriday13: <br>'; var_dump(CountFriday13::count(TestData::YEAR)); echo '<hr>';