Podejście MVC będziemy poznawać w praktyce, tak, aby na końcu zrozumieć je bez zbędnych wstępów i przydługich definicji. Zaczynajmy.

Tworzymy plik 404.php:

<?php 

echo "<h1>404 Not Found!</h1>";

W tym samym folderze tworzymy jakikolwiek plik o treści:

<?php 

http_response_code(404);
require __DIR__ . "/404.php";

Ustawiamy kod odpowiedzi HTTP na 404. Wklejamy plik 404.php za pomocą słówka kluczowego require. Zmienna magiczna __DIR__ posiada ścieżkę do aktualnego folderu.

Teraz napiszemy sobie taki tyci-tyci ErrorController:

<?php 


class ErrorController {

    private function __construct(){}

    public static function throwError($status_code, $path) {
        http_response_code($status_code);
        require __DIR__ . "/$path";
    }
}

ErrorController::throwError(404, "404.php");

Możemy teraz utworzyć plik 403.php (w tym samym folderze):

<?php 

echo "<h1>403 Unauthorized!</h1>";

Taki błąd też możemy wyrzucić:

<?php 


class ErrorController {

    private function __construct(){}

    public static function throwError($status_code, $path) {
        http_response_code($status_code);
        require __DIR__ . "/$path";
    }
}

ErrorController::throwError(403, "403.php");

Nie jest to najlepsze rozwiązanie, dlatego w następnym odcinku zrobimy to dużo lepiej. Tym niemniej – idziemy do przodu.