Я долго хранил все, кроме скриптов, доступных для непосредственного просмотра, вне корневого веб-каталога. Затем настройте PHP для включения вашего каталога скриптов в путь. Типичная установка будет:
appdir
include
html
В конфигурации PHP (либо в глобальной конфигурации PHP, либо в файле .htaccess
в каталоге html
) добавьте:
include_path = ".:/path/to/appdir/include:/usr/share/php"
или (для Windows)
include_path = ".;c:\path\to\appdir\include;c:\php\includes"
Обратите внимание, что эта строка, вероятно, уже находится в вашем файле php.ini
, но может быть закомментирована, что позволяет работать по умолчанию. Это может также включать другие пути. Обязательно сохраните и их.
Если вы добавляете его в файл .htaccess, формат:
php_value include_path .:/path/to/appdir/include:/usr/share/php
Наконец, вы можете программно добавить путь примерно так:
$parentPath = dirname(dirname(__FILE__));
$ourPath = $parentPath . DIRECTORY_SEPARATOR . 'include';
$includePath = ini_get('include_path');
$includePaths = explode(PATH_SEPARATOR, $includePath);
// Put our path between 'current directory' and rest of search path
if ($includePaths[0] == '.') {
array_shift($includePaths);
}
array_unshift($includePaths, '.', $ourPath);
$includePath = implode(PATH_SEPARATOR, $includePaths);
ini_set('include_path', $includePath);
(основано на рабочем коде, но изменено, поэтому не проверено)
Это должно быть запущено в вашем файле внешнего интерфейса (например, index.php
). Я поместил его в отдельный включаемый файл, который после модификации выше можно включить с чем-то вроде #include '../includes/prepPath.inc'
.
Я успешно использовал все представленные здесь версии. Конкретный метод зависит от предпочтений и способа развертывания проекта. Другими словами, если вы не можете изменить php.ini
, вы, очевидно, не сможете использовать этот метод