Я создал initialize.php для определения корневого каталога моего проекта.
defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR);
defined('SITE_ROOT') ? null : define('SITE_ROOT', DS.'works'.DS.'myproject');
Я включаю его с чем-то вроде этого из любого каталога.
require_once("../includes/initialize.php");
а другие файлы я включаю проще. Я собираюсь загрузить файлы на сервер, тогда мне нужно только изменить файл initialize.php.
Оно работает. Но когда я использую удобный для пользователя URL-адрес и вызываю из него файлы ajax, я не знаю, что моя иерархия каталогов включает initialize.php.
Я не хочу делать это:
require_once("/works/myproject/includes/initialize.php");
для каждого файла. Потому что это будет меняться, когда я загружаю каждый раз.
Я не хочу использовать сеанс или файл cookie для каждого пользователя.
Для этого должен быть трюк, но я не мог найти. Есть ли способ получить корень проекта из любого места, используя удобные URL-адреса и вызовы ajax?
Я починил это.
когда я вызываю это с помощью ajax, все в порядке. Но я включил его и как php для некоторых условий.
Из-за того, что текущие файлы и файлы ajax находятся в разных папках, произошел сбой.
Итак, когда я меняю его, чтобы при вызове с помощью ajax требовалось только initialize.php, проблема решалась.