Loading public/public/Actions/ReadFileLineByLineAction.php 0 → 100644 +29 −0 Original line number Diff line number Diff line <?php namespace App\Actions; use Generator; class ReadFileLineByLineAction { /** * Принимает путь до файла, * проверяет, что файл существует и выводит пользователю построчный вывод используя yield * (файл можешь создать любой) * * @param string $filePath путь до файла * @return string|Generator */ public static function read(string $filePath): Generator { if (!file_exists($filePath)) { throw new Exception("неверный путь"); } $file = fopen($filePath, 'r'); while (!feof($file)) { yield fgets($file); } fclose($file); } } public/public/TestData/FileToRead.txt +11 −5 Original line number Diff line number Diff line 1 H 2 E 3 L 4 L 5 O No newline at end of file h e l l o w o r l d No newline at end of file public/public/index.php +9 −1 Original line number Diff line number Diff line Loading @@ -9,9 +9,17 @@ use App\Actions\CountFriday13; use App\Actions\HowDaysToNYAction; use App\Actions\SortPriceAction; use App\Actions\IdSearchAction; use App\Actions\ReadFileLineByLineAction; use App\Actions\PrepareMenuAction; use App\TestData\TestData; echo 'ReadFileLineByLineAction: <br>'; try { foreach (ReadFileLineByLineAction::read(TestData::FILE_PATH) as $line) { echo $line; } echo '<hr>'; echo 'ReadLogFileAction: <br>'; try { ReadLogFileAction::read(TestData::FILE_PATH); Loading @@ -37,7 +45,7 @@ var_dump(DiffDaysAction::count( new DateTimeImmutable(TestData::START_DATE), new DateTimeImmutable(TestData::END_DATE) )); echo '<hr>' echo '<hr>'; echo 'HowDaysToNYAction: <br>'; echo "Дней до нового года (в днях): ". HowDaysToNYAction::count(new DateTimeImmutable()); Loading Loading
public/public/Actions/ReadFileLineByLineAction.php 0 → 100644 +29 −0 Original line number Diff line number Diff line <?php namespace App\Actions; use Generator; class ReadFileLineByLineAction { /** * Принимает путь до файла, * проверяет, что файл существует и выводит пользователю построчный вывод используя yield * (файл можешь создать любой) * * @param string $filePath путь до файла * @return string|Generator */ public static function read(string $filePath): Generator { if (!file_exists($filePath)) { throw new Exception("неверный путь"); } $file = fopen($filePath, 'r'); while (!feof($file)) { yield fgets($file); } fclose($file); } }
public/public/TestData/FileToRead.txt +11 −5 Original line number Diff line number Diff line 1 H 2 E 3 L 4 L 5 O No newline at end of file h e l l o w o r l d No newline at end of file
public/public/index.php +9 −1 Original line number Diff line number Diff line Loading @@ -9,9 +9,17 @@ use App\Actions\CountFriday13; use App\Actions\HowDaysToNYAction; use App\Actions\SortPriceAction; use App\Actions\IdSearchAction; use App\Actions\ReadFileLineByLineAction; use App\Actions\PrepareMenuAction; use App\TestData\TestData; echo 'ReadFileLineByLineAction: <br>'; try { foreach (ReadFileLineByLineAction::read(TestData::FILE_PATH) as $line) { echo $line; } echo '<hr>'; echo 'ReadLogFileAction: <br>'; try { ReadLogFileAction::read(TestData::FILE_PATH); Loading @@ -37,7 +45,7 @@ var_dump(DiffDaysAction::count( new DateTimeImmutable(TestData::START_DATE), new DateTimeImmutable(TestData::END_DATE) )); echo '<hr>' echo '<hr>'; echo 'HowDaysToNYAction: <br>'; echo "Дней до нового года (в днях): ". HowDaysToNYAction::count(new DateTimeImmutable()); Loading