Я хочу использовать автозагрузчик в своем проекте php, и я не знаю, жизнеспособна ли моя файловая организация.Прямо сейчас моя папка структурирована следующим образом:
-ProjectFolder
index.php
-common
-ajax
ajax_file.php
-classes
MyClass.php
В MyClass.php у меня есть следующая строка кода namespace common\classes;
.
В index.php у меня есть
spl_autoload_register(function ($class_name){
$file = str_replace('\\', '/', $class_name);
require "$file.php";
});
И поэтому я могу вызвать в файле index.php «тестовый» статический метод, имея следующую строку в моем коде: common\classes\MyClass::test();
Но index.php используется для получения ответов из ajax_file.PHP.Если я просто вызываю свой «тестовый» метод, просто добавляя ту же строку кода в ajax_file.php, это говорит мне, что класс не может быть найден.Я думаю, это потому, что он загружен независимо от того, что происходит в index.php.
Я не знаю, как я могу получить доступ к MyClass из ajax_file.php, и я даже не уверен, что это возможно, так как яПрочитайте некоторые вещи, которые, по-видимому, указывают на то, что невозможно «вернуться» с помощью «../» с автозагрузчиком.
Не могли бы вы сказать, каков хороший способ сделать это?