Простой автозагрузчик классов на PHP7+, реализующий автоматическую загрузку классов из путей к файлам в соответствии со спецификацией PSR-4.
Предназначен для проектов, которые не используют Composer и его автозагрузчик классов.
- PHP >=7.0
Автозагрузчик состоит из 2-х файлов и работает в глобальном пространстве имен:
- Autoloader.php - содержит класс автозагрузчика
Autoloader
; - autoload.php - предназначен для настройки параметров автозагрузчика
Autoloader
и его инициализации.
В случае возникновении ошибок при работе автозагрузчика вызывается пользовательская ошибка типа E_USER_ERROR
.
Параметры настройки автозагрузчика доступны через публичные статические свойства класса Autoloader
:
Статическое свойство | По умолчанию | Описание |
---|---|---|
$autoloadPath |
__DIR__ . './' |
Задает путь до каталога, в котором производится поиск классов для автозагрузки в соответствии со стандартом PSR-4. Путь задается относительно файла Autoloader.php |
$setAutoloadPathMode |
3 | Задает режим включения каталога, в котором производится поиск классов для автозагрузки, в настройку РНР-конфигурации include_path:1 - заменить текущее значение include_path на каталог;2 - добавить каталог в начало include_path;3 - добавить каталог в конец include_path |
$prependAutoloadMode |
false | Если установлено значение true, то автозагрузчик поместит регистрируемую функцию автозагрузки классов в начало предоставляемой SPL очереди вместо добавления в конец |
Публичные статические методы класса Autoloader
:
static setIncludePath(array $newPaths, int $mode = 3)
Устанавливает новые пути в настройку PHP-конфигурации include_path.$newPaths
- массив путей для включения в include_path;$mode
- режим включения путей в include_path:1
- заменить текущее значение include_path на пути;2
- добавить пути в начало include_path;3
- добавить пути в конец include_path.
Подключить в проекте файл autoload.php:
require_once __DIR__ . '/../../../autoload.php';
При необходимости, настроить параметры автозагрузчика Autoloader
в файле autoload.php:
<?php
require_once __DIR__ . './Autoloader.php';
/**
* Задает путь до каталога, в котором производится поиск классов для автозагрузки в соответствии со стандартом PSR-4.
* Путь задается относительно файла Autoloader.php
* @var string
*/
// Autoloader::$autoloadPath = __DIR__ . './';
/**
* Задает режим включения каталога, в котором производится поиск классов для автозагрузки,
* в настройку конфигурации include_path:
* 1 - заменить текущее значение include_path на каталог;
* 2 - добавить каталог в начало include_path;
* 3 - добавить каталог в конец include_path.
* @var int
*/
// Autoloader::$setAutoloadPathMode = 3;
/**
* Если установлено значение true, то автозагрузчик поместит регистрируемую функцию автозагрузки классов
* в начало предоставляемой SPL очереди вместо добавления в конец
* @var bool
*/
// Autoloader::$prependAutoloadMode = false;
/**
* Устанавливает новые пути в настройку конфигурации include_path
* @param array $newPaths Массив путей для включения в include_path
* @param int $mode Режим включения путей:
* 1 - заменить текущее значение include_path на пути;
* 2 - добавить пути в начало include_path;
* 3 - добавить пути в конец include_path.
* @return void
*/
// Autoloader::setIncludePath([ getCwd() ], $mode = 3);
// Инициализация автозагрузчика классов
Autoloader::init();
© 2015-2021 andrey-tech
Данный код распространяется на условиях лицензии MIT.