Структура текущего проекта, над которым я работаю, выглядит примерно так:
Итак, index.php включает first.php:
<?php include_once("includes/php/first.php"); ?>
Обычно мой first.php будет вызывать такие функции, как:
<?php include_once("includes/php/functions.php"); ?>
Предполагая, что относительный все равно будет с индексной страницы, однако при переходе на новый сервер это не сработало. Я попытался сделать относительный путь с first.php:
include_once("functions.php");
И теперь это работает.
Как правило, это правильный способ сделать это? Я хочу выпустить этот проект, чтобы кто-нибудь мог его установить.
включает в себя относительно файла, делающего включение. Если вы действительно хотите убедиться и избегать любой двусмысленности, вы можете сделать это:
include dirname(__FILE__) . "/functions.php";
Я всегда использую:
include ($_SERVER['DOCUMENT_ROOT']."/include/php/functions.php");
Таким образом, вы всегда знаете, где вы находитесь (из корня), и ваш код можно копировать с места на место.
$_SERVER['SCRIPT_FILENAME']
чтобы сделать то же самое, но это намного лучше.