oop — предопределенные константы PHP не работают

Я следую учебному пособию по созданию файла экземпляра с необходимыми файлами. Это дерево проекта:

введите описание изображения здесь

а это мой instantiate.php:

defined('DS') ? null : define('DS', DIRECTORY_SEPARATOR);

defined('SITE_ROOT') ? null : define('SITE_ROOT', DS.'var'.DS.'www'.DS.'html'.DS.'photo_gallery');

defined('LIB_PATH') ? null : define('LIB_PATH', SITE_ROOT.DS.'includes');

//load config file first
require_once(LIB_PATH.DS."config.php");

//load basic functions next so that everything after can use them
require_once(LIB_PATH.DS."functions.php");

//load core objects
require_once(LIB_PATH.DS."session.php");
require_once(LIB_PATH.DS."database.php");

//load database-related classes
require_once(LIB_PATH.DS."user.php");

В login.phpЯ требую инициализировать файл как:

require_once("../../includes/initialize.php");

Но, следуя руководству, я мог бы использовать LIB_PATH в таких файлах, как database.php что требует config.php и на user.php требующий database.php,

На данный момент им требуется файл без пути, поскольку они находятся в одном и том же включаемом файле. Однако, если я правильно понял, как работает разделитель каталогов, корень сайта и lib_path, то это улучшит то, что не нужно добавлять разные пути везде, просто добавьте путь через константы. Ну, это не работает! Это отображает это: (сверху вы видите эхо dirname(__FILE__) в index.php в общей папке.

введите описание изображения здесь

Я проверил phpinfo чтобы увидеть корневой путь … и все кажется в порядке, но не работает, если я пытаюсь использовать это LIB_PATH.DS,

Последнее, что я прочитал об этом, это некоторые ограничения на ibay, но я попытался провести больше исследований, и я даже не могу найти, что это за «ibay».

Кто-нибудь знает, почему это происходит? Спасибо!

2

Решение

Вы получаете уведомление, потому что у вас есть ошибка в пути для включения вашего файла: вы не получаете initialize.php файл загружен по сценарию. Если вы действительно хотите, чтобы этот файл был загружен (и вы действительно хотите его, так как ваш код не может обойтись без него), вы должны использовать require вместо include, Таким образом, если файл отсутствует, вы получите сообщение об ошибке, и ваш код остановится (смотрите, что остановка — это то, что вам действительно нужно, как если бы у вас не было путей, ваша программа с треском провалилась).

Еще больше, вы должны использовать require_once, поэтому вы не перегружаете создаваемое приложение: если файл был загружен один раз, он не будет загружен снова.

Вы можете проверить, загружен ли файл, следуя совету этого вопроса: Проверьте, был ли файл включен или загружен

1

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

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

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