Главная > Web, Программирование, Скрипты на php, java, ajax > Упрощаем подключение php файлов: ini_set(include_path, $path);

Упрощаем подключение php файлов: ini_set(include_path, $path);

23 февраля 2010

php ini_set()

Если вы работаете с большим проектом, где подключается очень много файлов из различных папок, наверняка вам причиняло неудобство при указании относительных или абсолютных путей в require_once(). Эту проблему можно решить раз и навсегда, указав директории для поиска “php библиотек”. Воспользуемся функцией ini_set(), чтобы указать путь поиска библиотек.

Допустим, в корне сайта у нас лежат:

index.php
libs/test1.php
libs/test2.php

Допустим в файле index.php нам нужно сделать “инклуд” файлов “test1.php” и “test1.php”, которые лежать в папке libs. Конечно, когда у нас всего 3 файла легко прописать в require_once() относительные или абсолютные пути. Давайте укажем директорию для поиска библиотек и подключим эти 2 файла без указания абсолютных и относительных путей:

<?php
ini_set('include_path', getenv(DOCUMENT_ROOT)."/libs");
require_once('test1.php');
require_once('test2.php');
?>

Благодаря указанию пути php без проблем находит библиотеки, лежащие в каталоге libs. При необходимости можно указать несколько каталогов, в которых php будет искать файлы при вызове функции require_once(). Продемонстрирую это ниже.

Наши файлы:

index.php
libs1/test1.php
libs2/test2.php

Теперь у нас библиотеки лежат в разных директориях. Добавим обе директории для поиска:

<?php
//Определяем, каким должен быть разделитель для путей
// ; - для Windows систем
// : - для *nix систем
$sep = getenv('COMSPEC')? ';' : ':';
//Определяем папку корня сайта
$dr = getenv('DOCUMENT_ROOT');
//Cклеиваем пути: путь 1 + разделитель + путь 2
$path = $dr.'/libs1'.$sep.$dr.'/libs2';
//Выполняем функцию ini_set()
ini_set('include_path', $path);
//Проверяем
require_once('test1.php');
require_once('test2.php');
?>

Вот и все. Думаю моя заметка будет очень полезна новичкам :) Удачи всем в разработках!

Комментирование отключено.