Я делаю проект на PHP, который я не очень хорошо знаю. Я использую структуру MVC (CodeIgnitor). Я заметил, что каждый раз, когда я возвращаю представление, которое было результатом более длинной / короткой строки URL-адреса, все мои включенные в него прерывания. Похоже, что пути относятся к url.
Является ли $ _SERVER ["DOCUMENT_ROOT"] лучшим способом генерации include paths в 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');
Вызов абсолютного пути заставил бы включать не заботятся о текущем пути.