Просмотр файла app/Http/Controllers/FileController.php

Размер файла: 768B
  1. <?php
  2.  
  3. declare(strict_types=1);
  4.  
  5. namespace App\Http\Controllers;
  6.  
  7. use Illuminate\Support\Str;
  8. use Illuminate\View\View;
  9.  
  10. class FileController extends Controller
  11. {
  12. /**
  13. * Главная страница
  14. *
  15. * @param string $page
  16. *
  17. * @return View
  18. */
  19. public function index(string $page = 'index'): View
  20. {
  21. if ($page === 'index') {
  22. return view('files/index');
  23. }
  24.  
  25. if (! preg_match('|^[a-z0-9_\-/]+$|i', $page)) {
  26. abort(404);
  27. }
  28.  
  29. $page = Str::contains($page, '/') ? $page : $page . '/index';
  30.  
  31. if (! file_exists(resource_path('views/files/' . $page . '.blade.php'))) {
  32. abort(404);
  33. }
  34.  
  35. return view('files/layout', compact('page'));
  36. }
  37. }