PHP Inside

 
   
 

Главная


Начало
страница1
страница2
страница3
страница4
страница5
страница6
страница7
страница8
страница9
страница10
страница11
страница12
страница13
страница14
страница15
страница16
страница17
страница18
страница19
страница20
страница21
страница22
страница23
страница24
страница25
страница26
страница27
страница28
страница29
страница30
страница31
страница32
страница33
страница34
страница35
страница36
страница37
страница38
страница39
страница40
страница41
страница42
страница43
страница44
страница45
страница46
страница47
страница48
страница49
страница50
страница51
страница52
страница53
страница54
страница55
страница56
страница57
страница58
страница59
страница60
страница61
страница62
страница63
страница64
страница65
страница66
страница67
страница68
страница69
страница70
страница71
страница72
страница73
страница74
страница75
страница76
страница77
страница78
страница79
страница80
страница81
страница82
страница83
страница84
страница85
страница86
страница87
страница88
страница89

 
 
 

 

 

Автоматическая загрузка объектов - полезная возможность , появившаяся в РНР , позволяет более комфортно работать с большими проектами , экономя процессорное время , а самое главное - время разработчика .

Суть проблемы

В объектно ориентированном програм­ мировании широко используется под­ ход , при котором каждый класс хранит­ ся в отдельном файле . С ростом про­ екта увеличивается и количество фай­ лов . В средних проектах число фай­лов может достигать нескольких со­ тен , а в крупных счет идет на тысячи . Такое количество файлов порождает множество проблем .

•  Для обработки различных запро­
сов требуются различные наборы
классов . Чтобы отобразить глав­
ную страницу , нужны одни клас­
сы , а для генерации RSS - канала -
другие . Разработчик должен сле­
дить за тем , чтобы все необходи­
мые классы были доступны .

•  При наличии большого количества
классов трудно подключать только
те , которые необходимы для обра­
ботки пользовательского запроса .
В таких случаях разработчики со-


здают отдельный файл ( например , include . php ), в котором осущест­ вляют подключение всех классов , входящих в проект . С одной сторо­ны , это решает проблему наличия необходимых классов , но с другой стороны , подключается множество классов , которые не будут исполь­ зованы для обработки запроса . На­пример , если в приложении объяв­ лено 1000 классов , а для отобра­жения главной страницы требует­ ся только 20, то нет необходимос­ ти тратить ресурсы на загрузку ос­ тальных 980 классов . ¦ Добавление , удаление , переме­ щение файла требует измене­ ния всех фрагментов кода , в кото­ рых осуществляется подключение файла .

Таким образом , необходимо пост­ роить систему , позволяющую автома­ тически загружать только классы , не-


обходимые для обработки пользова­ тельского запроса .

Автоматизация загрузки объектов

В основе автоматической загрузки объектов лежит простая идея - если интерпретатор РНР видит , что для про­ должения исполнения приложения не хватает объявления класса ( или интер­ фейса ), то пусть приложение его загру­ зит и продолжит работу . Такой подход позволяет :

•  избавить разработчика от необхо­
димости следить за списком под­
ключаемых файлов ;

•  повысить производительность при­
ложения за счет экономии процес­
сорного времени и памяти на за­
грузке неиспользуемых классов .

Реализация идеи выглядит следу­ ющим образом : интерпретатор пере­ дает имя недостающего класса прило

жению по средствам вызова определенной разработчиком
функции автозагрузчика . По умолчанию в качестве авто­
загрузчика используется магическая функция _ autoload ().

Задача разработчика - заложить в функцию - автозагрузчик алгоритм , решающий следующие задачи