php include_paths в htaccess - PullRequest
       29

php include_paths в htaccess

1 голос
/ 30 августа 2011

У меня есть несколько вещей в разных файлах, которые вызываются из разных мест.Я пытался использовать переменную $ ROOT, но потому что я собираюсь из нескольких разных файлов (index.php, view.php, admin / index.php и т. Д.) И не имеет начальной загрузки (или что-то ещея не всегда могу добраться до $ ROOT от вещей, вызываемых ajax и т. д.

, если я устанавливаю include_path через htaccess примерно так:

php_value include_path ".;C:\wamp\www\project\"

Я предполагаю, что это не включает подкаталоги, и мне также нужно было бы добавить строку для каждого другого каталога, где находятся мои файлы, даже если они находятся в C:\wamp\www\project\components или C:\wamp\www\project\model?

И я должендобавить новые строки или запятые?Я не могу найти в Интернете ни одного примера использования htaccess для установки путей включения с несколькими путями ...

Альтернативно есть ли способ получить все, что связано с моей переменной $ ROOT, и использовать абсолютные пути, и каким-то образомкаждый файл, даже если он находится в разных местах, ссылается на эту конкретную переменную?(без необходимости вносить оптовые изменения во все файлы в приложении?) Преимущество этого заключается в том, что при изменении / развертывании сервера требуется только изменение файла, но я не знаю, как начать это делать!

спасибо:)

Ответы [ 2 ]

1 голос
/ 30 августа 2011

Я предполагаю, что не включает подкаталоги,

Почему ты не попробовал это? (это включает sub dirs)

Я не могу найти в Интернете ни одного примера использования htaccess для установки путей включения с несколькими путями

? Вы уже предоставили один:

php_value include_path ".; C: \ wamp \ www \ project \"

Пути - это "." и 'C: \ wamp \ www \ project \'

(Кстати, лучше использовать '/' в качестве разделителя dir - это позволяет избежать путаницы по поводу выхода из стиля Unix)

0 голосов
/ 30 августа 2011

В среде Windows вы должны использовать точки с запятой для разделения путей включения, например:

php_value include_path ".;C:\wamp\www\project\;C:\wamp\www\project\components;C:\wamp\www\project\models"

Но я не уверен, почему вы хотите это сделать. Добавление подкаталогов открывает возможность столкновения имен файлов. Если у вас есть, C: \ wamp \ www \ project \ components \ example.php и C: \ wamp \ www \ project \ models \ example.php, включая оба подкаталога в пути включения, создаст неоднозначность при попытке включите любой файл. Если у вас уже есть каталог проекта в вашем пути включения, вы уже можете вызывать что-либо внутри него, используя относительный путь. Например:

<?php include 'components/example.php'; ?>

Это будет включать в себя C: \ wamp \ www \ project \ components \ example.php и исключает вероятность любых конфликтов имен файлов.

...