У меня есть следующая иерархия файлов:
и require_once как-то не работает (Warning: require_once (./ AutentificadorJWT.php): не удалось открыть поток: нет такого файла или каталога в C: \ xampp \ htdocs \ clases \ usuario.php в строке 2) Насколько я знайте ./ указывает на текущий каталог. Теперь выполняются следующие действия: require_once 'AutentificadorJWT.php'; Почему ./ не работает?
Может быть довольно сложно узнать, какой каталог является текущим каталогом, когда у вас сложная иерархия кода. Если вы хотите иметь постоянную точку отсчета, вы можете использовать $_SERVER['DOCUMENT_ROOT']
который определяет базу вашего кода на вашем компьютере. Так…
require_once $_SERVER['DOCUMENT_ROOT'].'/base.php';
Будет работать для base.php в корне вашего проекта. Единственная проблема, с которой я столкнулся, заключается в том, что в модульном тестировании не всегда имеется множество переменных $_SERVER
.
Кроме того, вы можете использовать __DIR__
который является каталогом текущего файла. Поэтому, если в вашем случае вы изменили его на …
require_once __DIR__.'/AuthentifacdorJWT.php';
Это всегда будет относиться к каталогу файла, с которым вы работаете.