Автозагрузка классов в PHP

Активный
Статус
Сообщения
516
Лайки
32

8

месяц на сайте

Автозагрузка упрощает подключение классов. Разберем использование.

spl_autoload_register
Код:
<?php
spl_autoload_register(function($className) {
    $file = "classes/" . $className . ".php";
    if(file_exists($file)) {
        require_once $file;
    }
});

// Использование
$user = new User(); // автоматически загрузится User.php
?>

PSR-4 автозагрузка
Код:
<?php
spl_autoload_register(function($className) {
    $prefix = "MyProject\\";
    $baseDir = __DIR__ . "/src/";
    
    $len = strlen($prefix);
    if(strncmp($prefix, $className, $len) !== 0) {
        return;
    }
    
    $relativeClass = substr($className, $len);
    $file = $baseDir . str_replace("\\", "/", $relativeClass) . ".php";
    
    if(file_exists($file)) {
        require $file;
    }
});
?>

Composer autoload
Код:
<?php
require "vendor/autoload.php";

// Автоматическая загрузка классов
use MyProject\User;
$user = new User();
?>

Важные моменты:
- Используйте PSR-4 стандарт
- Организуйте классы по структуре
- Оптимизируйте автозагрузку
- Кешируйте при необходимости

Автозагрузка упрощает работу с классами!
 

1 человек читают эту тему (Всего: 1, Пользователей: 0, Гостей: 1)

Сверху