У меня проблемы с моим проектом php ...
Функция автозагрузки:
spl_autoload_register(function ($class_name) {
include 'HTMLClasses/'.$class_name . '.php';});
При автоматической загрузке классов из каталога "HTMLClasses" переменные в автоматически загружаемом файле, включенные в другие файлы, больше не находятся в его области действия.
somefile.php
require_once $_SERVER["DOCUMENT_ROOT"] . "/config/phpFileIndex.php";
require_once $phpFile['resourcesPaths'];
include_once "../autoload.php";
class SomeClass{}
проблема в том, что при автозагрузке этого класса переменная $ phpFile больше не входит в область действия этого сценария. Он глобальный, и я могу получить к нему доступ, используя $ GLOBALS, но я не понимаю, зачем мне это вообще нужно, поскольку, если я включу SomeClass вручную, переменная находится в обычной области видимости. В документации spl_autoload_register нет ничего задокументированного об этом поведении.
Другая проблема заключается в том, что я не могу включить автозагрузку отсюда. Даже если autoload.php находится в верхнем каталоге. При включении полного пути от Document_root это работает, но не относительно. И я на самом деле не понимаю этого. Предупреждение гласит:
'Warning: include_once(): Failed opening '../autoload.php' for inclusion (include_path='\xampp\php\PEAR') in F:\<path>\HTMLClasses\Template.php on line 4'
Я не знаю, если это проблема с кодом или с моим окружением.
Я пытался найти его, но проблема в том, что я не знаю, что искать. Если у кого-то есть идея по этому поводу, я бы очень ее оценил. :)