Как добавить путь к PHP include_path в .htaccess - PullRequest
30 голосов
/ 16 июля 2009

В настоящее время на моем сайте я использую утверждения типа:

include 'head.php';
include '../head.php';
include '../../head.php';

в зависимости от того, сколько я вложенных папок.Я уверен, что есть лучший способ сделать это.

Я убежден, .htaccess - это решение, но я не уверен, как его реализовать.Если я вставлю:

php_value include_path "public/html/root"

... я потеряю оставшиеся пути (/usr/lib/php и т. Д.).Я наивно пытался:

php_value include_path $include_path . "(path)"

но, конечно, это не сработало.Как я могу добавить или добавить единственный путь к этому списку с помощью .htaccess?

Ответы [ 2 ]

28 голосов
/ 20 декабря 2011

Создайте в подкаталогах файл .htaccess с содержанием

php_value include_path '../../includes'

или что-то еще include_path подходит для этого каталога.

Преимущества:

  1. Нет уродливого хака с несколькими включениями с разной глубиной. Просто include 'head.php'.
  2. Нет зависимости от редактирования php.ini.
  3. Нет необходимости использовать set_include_path() перед включением.
  4. Нет зависимости от включения таких констант, как include INCLUDE_PATH . 'head.php'.

Цена для оплаты:

В каждом из ваших подкаталогов имеется файл .htaccess.

23 голосов
/ 16 июля 2009

Если вы не можете редактировать сам файл php.ini, вы можете добавить

set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add);

до ваших include заявлений.

Однако, если у вас проблемы с include или require, это, вероятно, запах кода. Лучшим решением будет хороший объектно-ориентированный дизайн с хорошей __autoload функцией.

...