Управление ошибкой 404

Я делаю сайт MVC без фреймворка. Не могли бы вы помочь мне написать код в автозагрузке класса, чтобы перенаправить на страницу с ошибкой 404 (уже существует), когда класс не существует.

http://cedricjager.com/stream/index.php?p=non_existant_class => 404 стр.

class Autoload {

static function register() {
spl_autoload_register (['Autoload', 'myAutoload']);
}

static function myAutoload($class_name) {
$class = ucfirst($class_name);
require 'Models/' . $class . '.php';
}
}

class Router {.....
    elseif ($p === '404') {
  $this->controller->error();
}

Спасибо

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
71
3

Ответы 3

  1. Создайте свою собственную страницу 404
  2. Сделайте .htaccess файл и поместите его в свой корень
  3. Поместите эту строку в файл .htaccess ErrorDocument 404 {ссылка на ваш сайт} /your-custom-404.php

Самый простой вариант - использовать Файл существует, т.е.

if (file_exists('Models/' . $class . '.php')) {
  require 'Models/' . $class . '.php';
} else {
  header('Location: 404.php');
}

Это должно помочь вам :)

Я надеюсь, что этот код поможет вам

static function myAutoload($class_name)
{
    $class = ucfirst($class_name);
    $file = "Models/{$class}.php";
    try {
        if (!file_exists($file)) {
            throw new Exception('File doesn\'t exists', 404);
        }
        require $file;
    } catch (Exception $e) {
        $message = $e->getMessage(); // File doesn't exists
        $code = $e->getCode(); //404
        // show your 404 error
        // or rewrite to 404 url
    }
}

Другие вопросы по теме