Я хочу знать, как включить код (файл конфигурации) в php-файлы, которые существуют в разных глубинах каталога, без использования относительных путей или прямых абсолютных путей (жестко закодированные пути). Я не люблю использовать следующее:Как избежать жесткого кодирования корневого веб-сайта в php для включения «файла конфигурации»?
- ../config.php
- ../../config.php
- ../../../config.php
- с: /wamp/www/mysite/config.php
идея заключается в том, чтобы избежать необходимости модифицировать кратные файлы, когда:
- Файл перемещен в другой каталог
- Корень приложения изменяется
Что я сделал это положить в моем файле конфигурации следующее:
define("ROOT", dirname(__FILE__));
И в других файлах:
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
include $root ."/mysite/config.php";
Вы могли видеть, что я жестко закодированы папку моего сайта «/ MySITE». Может избежать жесткого кодирования этого имени каталога?
Наступает момент, когда вам нужно решить, «сколько информации у меня есть, чтобы дать программе возможность найти нужный файл». Если вы перемещаете файл вокруг, но он всегда имеет одно и то же имя, я полагаю, вы могли бы «искать все дерево для информации». Но в другом месте вам нужно поставить ставку в землю. Интересно, не отвлекаете ли вы себя на это ... – Floris
'dirname (__ FILE __)' можно заменить на '__DIR__', если вы на PHP 5.3 или выше (каким вы должны быть). – Spudley
Привет @Floris, я пришел из ASP.NET, где каждый файл имеет прямой доступ к конфигурационному файлу (web.config), поэтому в том числе файлы в том, что php работает для меня новичком. Вот почему я спрашиваю. Вы могли видеть это как лучший способ поставить ставку. – mjsr