diff --git a/public/helloWorld.html b/public/helloWorld.html new file mode 100644 index 0000000000000000000000000000000000000000..a47038fb4df6084ff76bc7f124a867135c1f0858 --- /dev/null +++ b/public/helloWorld.html @@ -0,0 +1,10 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Title</title> +</head> +<body> +hello World +</body> +</html> \ No newline at end of file diff --git a/src/Actions/ReadLogFileAction.php b/src/Actions/ReadLogFileAction.php new file mode 100644 index 0000000000000000000000000000000000000000..ba63dd798f6508def3c58b48b1fbff4ed593adb2 --- /dev/null +++ b/src/Actions/ReadLogFileAction.php @@ -0,0 +1,26 @@ +<?php + +namespace App\Actions; + +use Exception; + +class ReadLogFileAction +{ + /** + * Принимает путь до файла, + * проверÑет, что файл ÑущеÑтвует и выводит пользователю веÑÑŒ контент файла + * (файл можешь Ñоздать любой) + * + * @param string $filePath путь до файла + * @return false|string + * @throws Exception при отÑутÑвии фаила по переданному пути + */ + public function act(string $filePath) + { + if (!file_exists($filePath)) { + throw new Exception("По данному пути ничего не найдено: $filePath"); + } + + return file_get_contents($filePath); + } +} diff --git a/src/Controller/ReadLogFileController.php b/src/Controller/ReadLogFileController.php new file mode 100644 index 0000000000000000000000000000000000000000..809cf6439f59dbc6117f3a7d180a7702f643a785 --- /dev/null +++ b/src/Controller/ReadLogFileController.php @@ -0,0 +1,29 @@ +<?php + +namespace App\Controller; +use App\Actions\ReadLogFileAction; +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Attribute\Route; + +class ReadLogFileController extends AbstractController +{ + /** + * Принимает путь до файла, + * проверÑет, что файл ÑущеÑтвует и выводит пользователю веÑÑŒ контент файла + * (файл можешь Ñоздать любой) + * + * @param Request $request + * @param ReadLogFileAction $action + * @return Response + */ + #[Route('/read', name: 'app_read_log_file', methods: ['POST'])] + public function index(Request $request, ReadLogFileAction $action): Response + { + $file = $request->files->get("File"); + return new Response($action->act($file->getPathname())); + } + + } +