PHP

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

Для удобства код классов выносят в отдельные php файлы и подключают их по мере надобности.

include_once '/classes/mail.php';
$mail = new Mail();

Автозагрузка позволяет упростить этот процесс и использовать классы без include.
Существует два метода:

1

__autoload()

функция является устаревшей и с версии PHP 7.2 ее не рекомендуется использовать.

function __autoload($name) {
    include_once '/classes/' . strtolower($name) . '.php';
}

...

$mail = new Mail();

При создании экземпляра класса Mail вызовется функция __autoload() которая по имени класса подключит файл  /classes/mail.php.

2

spl_autoload_register()

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.

spl_autoload_unregister('autoload');

require_once '/PHPExcel/IOFactory.php';
$xls = PHPExcel_IOFactory::load($_FILES['file']['tmp_name']);
$xls->setActiveSheetIndex(0);
$sheet = $xls->getActiveSheet();
$array = $sheet->toArray();

spl_autoload_register('autoload');
02 ноября 2017
В последнее время письма отправляемые с хостингов через функции mail() и mb_send_mail() часто попадают или совсем не...
cURL PHP – это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS....
В статье приведены основные примеры работы с расширением PHP PDO. Такие как подключение к БД, получение, изменение и...
Библиотека GD дает возможность работать с изображениями в PHP. Далее представлены примеры как изменить размер, вырезать...