Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
нять имеющиеся переменные напрямую 
он все же способен. 
Работа с библиотекарем 
Рассмотрим пример сценария, использующего библиотекарь в своей работе. Мы бу- 
дем предполагать, что все модули размещены в подкаталоге /lib основного 
каталога 

Часть V. Приемы программирования на PHP 
404 
с Web-документами (если вы заметили, такой каталог уже есть в путях поиска 
моду- 
лей по умолчанию, "зашитых" в библиотекаре). 
Пока мы будем подключать библиотекаря явно — инструкцией include. Ко- 
нечно, это не очень удобно. Очень скоро мы узнаем, как избавиться от указан- 
ного недостатка. 
Пусть сценарию требуется библиотека files.phl, которую мы написали (или где-то 
достали, хотя модули для PHP все еще большая редкость), и которая содержит 
неко- 
торые функции для работы с файлами. 
Кстати, модулю files.phl самому могут понадобиться некоторые модули. 
Если это так, нет проблем: достаточно лишь поставить вызов Uses() внутрь 
кода библиотеки. 
Листинг 29.2. Тестовый сценарий 
 
Как видите, ничего сложного. Давайте теперь посмотрим, как выглядит модуль 
files.phl. 
Листинг 29.3. Пример модуля files.phl 
$st) { 
if(!ereg("^([^=]+)=(.*)",$st,$regs)) continue; 
$Hash[trim($regs[1])]=trim($regs[2]); 
} 
return $Hash; 
} 
?> 
Автоматическое подключение 
библиотекаря 
Из листинга 29.2 можно видеть, что пока нам не удалось полностью избавиться от 
указания абсолютного пути к библиотекам. Вот строка, которая мне не нравится: 
include "$DOCUMENT_ROOT/lib/librarian.phl"; // подключаем библиотекарь 
Действуя привычным способом, нам придется вставлять ее в каждый сценарий, кото- 

рый планирует использовать библиотекаря. Этих сценариев может быть довольно 
много, так что если мы вдруг захотим изменить lib на, скажем, ../libraries, то 
придется править все программы. По закону Мэрфи где-нибудь да ошибетесь — обя- 
зательно. А значит, такое решение нам, как дотошным программистам, не подходит. 

К счастью, существует еще по крайней мере два способа решить проблему с 
абсолют- 
ными путями, и который из них выбрать — зависит от ситуации. 

Часть V. Приемы программирования на PHP 
406 
Здесь я хочу оговориться: разумеется, где-то все равно придется задать путь 
к библиотекарю, но такое место будет только одно, поэтому в случае нужды 
его легко модифицировать. 
Способ первый: использование 
auto_prepend_file 
Как следует из Приложения 2, PHP опирается при выполнении сценариев на специ- 
альный файл конфигурации под названием php.ini, в котором хранится большинст- 
во его настроек, заданных в виде директив. Кроме того, если PHP установлен как 
модуль Apache (а именно так обстоит дело у большинства хостинг-провайдеров), 
не- 
которые директивы можно также включать прямо в файлы .htaccess, управляющие 
рабо
 
<<-[Весь Текст]
Страница: из 287
 <<-