Как использовать PHP Автозагрузчик в нескольких файлах? - PullRequest
0 голосов
/ 30 марта 2020

В настоящее время я пытаюсь заменить require и require_once в моем проекте автозагрузчиком. Я работаю с моделью MVC и мне нужно автоматически загрузить много файлов.

File1: Мой класс / функция автозагрузчика выглядит следующим образом:

<?php

class Autoloader {

    static public function loadEverything() {

        $root = realpath($_SERVER["DOCUMENT_ROOT"]);
        require_once $root . "/src/Model/Device.php";
        require_once $root . "/src/Model/Employee.php";
        require_once $root . "/src/Model/User.php";
        require_once $root . "/src/Controller/Controller.php";
    }

}

Файл2: И файл, в котором я использую эти файлы, выглядит следующим образом:

$root = realpath($_SERVER["DOCUMENT_ROOT"]);
require_once $root . "/src/Model/Autoloader.php";
spl_autoload_register('Autoloader::loadEverything');

Но это не работает. Как мне активировать эту автозагрузку в File2? Я не понимаю Спасибо за вашу помощь.

1 Ответ

1 голос
/ 30 марта 2020

Это то, что вы делаете, когда хотите автоматически загрузить свои классы:

function my_autoloader($class) {
    include $root . 'classes/' . $class . '.class.php';
}

spl_autoload_register('my_autoloader');

Если вы хотите загрузить что-нибудь еще, вы можете написать новую функцию, которая будет вызываться, куда вы помещаете все свои require_once вещи .

Это работает:

class Autoloader {

    static public function loadEverything() {
        $root = realpath($_SERVER["DOCUMENT_ROOT"]);

        //Autoloading classes
        spl_autoload_register(function ($class) {
            $root . 'Model/' . $class . '.php';
        });

        //Manually load needed files
        require_once $root . "/src/Model/Device.php";
        require_once $root . "/src/Model/Employee.php";
        require_once $root . "/src/Model/User.php";
        require_once $root . "/src/Controller/Controller.php";
    }

}

Autoloader::loadEverything();

Если вы новичок в mvc, вы можете смотреть видео из Codecourse на YouTube. У него около 25 видео о приложении mvc, и он все так хорошо объясняет.

...