Для удобства код классов выносят в отдельные php файлы и подключают их по мере надобности.
Автозагрузка позволяет упростить этот процесс и использовать классы без include
.
Существует два метода:
функция является устаревшей и с версии PHP 7.2 её не рекомендуется использовать.
function __autoload($name) {
include_once '/classes/' . strtolower($name) . '.php';
}
...
$mail = new Mail();
При создании экземпляра класса Mail вызовется функция __autoload()
, которая по имени класса подключит файл /classes/mail.php
.
SPL autoload появился в PHP 5.1 и предназначена для замены __autoload()
.
spl_autoload_register('autoload');
function autoload($name)
{
include_once '/classes/' . strtolower($name) . '.php';
}
...
$mail = new Mail();
В функцию передается название функции которая будет вызваться для подключения файлов.
Для отключения автозагрузки применяется функция spl_autoload_unregister()
, это бывает нужно при использовании сторонних расширений, например PHPExcel.