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


Как правило, отдельные классы помещают в отдельные одноименные файлы. Например, в файл Books.php помещают определение класса Books и больше ничего.

Этот подход означает, что для использования отдельного класса необходимо включить в скрипт файл с определением этого класса (при помощи require или include).

Соответственно, при большом количестве классов, будет возрастать количество подключений классов - а это неудобно и приводит к лишним строкам кода. Для того, чтобы можно было использовать класс, определенный в отдельном файле, не используя постоянно require самого файла используют автоматическую загрузку классов.

Автоматическая загрузка формально означает, что при обращении к названию класса, который не описан в скрипте, будет вызвана специальная функция - __autoload(). В ней необходимо записать инструкции, которые будут исполнены, если в скрипте было упомянуто неизвестное название класса. Как правило, в этой функции используют require или include для того, чтобы подключить необходимый файл. Функция __autoload($name) зависит от параметра - названия класса, использование которого привело к запуску этой функции.



В данном случае в скрипте отсутствует определение класса myClass, но ввиду присутствия функции __autoload, будет автоматически произведен поиск одноименного файла myClass.php. В случае, если этот файл найден, он будет включен в скрипт и тогда класс будет определен. В противном случае будет брошено исключение.