Autoload - немного магии

Заметка об одном интересном магическом методе в PHP - __autoload()

Каждай человек, который имел дело c PHP4 помнит, что при попытке создать объект несуществующего класса в PHP4, выдавалась фатальная ошибка. Эту ошибку было невозможно перехватить error_handler-ом.

В PHP5 ситуация немного наладилась. Перед фатальной ошибкой вызывается метод __autoload(), который должен попытаться подключить такой класс. Имя этого класса будет передано в качестве единственного аргумента этой функции.

На самом деле __autoload() представляет мощьный механизм для подключения классов. Если файлы в вашем проекте структурированы каким-либо образом, то написам функцию __autoload вы сможете забыть о горах конструкций include.

Кроме этого, __autoload() вызывается функцией class_exists() (вызов можно подавить вторым параметром равным false).

Предположим ваши классы лежат в папке dir/include в файлах с названиями ClassName.class.php. Тогда можно реализовать автоматическое подключение нужных классов, например так:

Теперь при мопытке создания объекта несуществующего класса php сам попробует найти этот класс. Как развить данную идею каждый думаетсям:)

 

Нет комментариев.
Добавить комментарий
Вам необходимо включить показ изображений в браузере для того чтобы увидеть код

Дайте нам знать, что вы - живой человек. Для нас это важно!
Кликните, если плохо видно

Прежде чем высказать свое мнение, прочитайте пожалуйста: правила

Рейтинг@Mail.ru