Обработка относительных путей для включения файлов в PHP

Я делаю проект на PHP, который я не очень хорошо знаю. Я использую структуру MVC (CodeIgnitor). Я заметил, что каждый раз, когда я возвращаю представление, которое было результатом более длинной / короткой строки URL-адреса, все мои включенные в него прерывания. Похоже, что пути относятся к url.

Является ли $ _SERVER ["DOCUMENT_ROOT"] лучшим способом генерации include paths в PHP?

Благодаря!

Related of "Обработка относительных путей для включения файлов в PHP"

base_url () и site_url (), вероятно, то, что вам нужно.

Вы должны прочитать Руководство пользователя по помощи URL-адресов . Он уже содержит всю необходимую информацию и предоставляет функции, которые дают вам пути для вашего сайта.

Если вам нужны пути в вашей файловой системе, есть BASEPATH , APPPATH и FCPATH . Посмотрите на index.php чтобы увидеть, где они указывают (также есть описание этих констант)

Я действительно зависит от вашего приложения, я не знаю, как работает CodeIgnitor, но вот несколько моментов:

Если вы используете php-путь (определенный в php.ini), вы всегда можете включить в него путь php, поэтому включение файла больше не относится к пути к файлу.

Если у вас есть каталог проекта (например, / srv / www / myProject /) и все файлы, которые вы используете, находятся в этом каталоге, тогда вы можете определить значение сеанса, подобное этому $ _SESSION ['project_path'] = '/ srv / www / myProject ", а затем при включении файлов он будет выглядеть так:

 include_once($_SESSION['project_path'] . 'included.php'); 

Вызов абсолютного пути заставил бы включать не заботятся о текущем пути.