У меня есть существующая автозагрузка, которая проходит через файл json для автозагрузки различных сторонних файлов, это работает очень хорошо. Однако в проект добавляются новые файлы, и они находятся в разных каталогах, но используют одно и то же пространство имен. Проблема заключается в том, что, кажется, только загрузит последний каталог для одного и того же пространства имен, поэтому, когда он идет, чтобы загрузить файл, он не может его найти.
У меня есть существующая автозагрузка, которая проходит через файл json для автозагрузки различных сторонних файлов, это работает очень хорошо. Однако в проект добавляются новые файлы, и они находятся в разных каталогах, но используют одно и то же пространство имен. Проблема заключается в том, что, кажется, только загрузит последний каталог для одного и того же пространства имен, поэтому, когда он идет, чтобы загрузить файл, он не может его найти.[code]spl_autoload_register(function (string $class_name): void { // Get mappings from json $conductor = file_get_contents(__DIR__.'/autoload.json'); $conductor = str_replace('\\', '\\\\', $conductor); $configuration = json_decode(stripslashes($conductor), true);
// Map the namespace to the corresponding folder $namespace_mapping = $configuration['autoload']['psr-4'];
foreach ($namespace_mapping as $namespace => $directory) { if ( strpos($class_name, $namespace = trim($namespace, '\\')) !== 0 || (!$directory = realpath(__DIR__ . DIRECTORY_SEPARATOR . trim($directory, DIRECTORY_SEPARATOR))) ) { continue; // Class name doesn't match or the directory doesn't exist }
< /code> Я думал, что нужно сделать что -то подобное в JSON: < /p> "Psr\\Http\\Server\\": ["psr/http-server-handler/src/", "psr/http-server-middleware/src/"], [/code] Любая помощь будет высоко оценена.