Вызов PHP включает через путь к сайту

Я исследовал в течение 2 дней и не могу найти ответ, который работает.

Это моя файловая структура.

/ucdev/ (index and future files)
/ucdev/classes/ (Classes)
/ucdev/users/ (all the user-related docs,account settings etc)
/ucdev/users/models/ (all the other config and db files, for now).

Мне нужно найти способ загрузить все мои классы, независимо от того, из какой папки я вызываю включения. В основном мне нужно установить корневую переменную сайта, которая работает.

Я получил самое близкое использование

$subfolder = "/ucdev/";
$root = $_SERVER["DOCUMENT_ROOT"].$subfolder;

Но Chrome обрабатывает этот $ _SERVER [«DOCUMENT_ROOT»] как локальный путь c: \ type и не позволяет загружать ресурсы (т. Е. Не разрешается загружать локальную ошибку ресурса в Chrome).

Итак, в основном мне нужен способ, чтобы в моем файле config.php было что-то вроде …

require_once ($root."classes/Session.php");
require_once ($root."classes/Token.php");
require_once ($root."classes/User.php");

и эти ресурсы загружаются независимо от того, был ли этот config.php извлечен из

ucdev/index.php
or
ucdev/users/login.php

Я надеюсь, что дал достаточно информации, чтобы иметь смысл.

Наконец, одна из самых важных вещей заключается в том, что я каким-то образом получаю переменную «root path», чтобы я мог вызывать все свои ссылки из root, а не по отношению к вызывающему их файлу. Я хотел бы, чтобы моя верхняя навигация работала независимо от того, какой файл ее вызывает.

1

Решение

Я нашел лучший способ сделать это, чтобы:

$subfolder = "/ucdev/";
$root = realpath($_SERVER["DOCUMENT_ROOT"].$subfolder);
define('root',str_replace("\\","/",$root) ."/");

Затем, когда я включаю свои классы, я использую

require_once (root."classes/Config.php");

и они работают откуда угодно.

Для изображений и ссылок, которые расположены относительно корня, я могу сделать что-то вроде …

img src="<?php root; ?>images/logo.png"

Большое спасибо Lucky Chingi за то, что он указал мне правильное направление!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]