Я пытаюсь автозагрузить классы. Я создаю папку app/Classes с файлом Foo.php и файлом Bar.php.Laravel 5 проблема автозагрузки класса - Class Not Found Error
В composer.json У меня есть папка ссылки
"autoload": {
"classmap": [
"database",
"app/Classes/"
],
"psr-4": {
"App\\": "app/"
},
"files": ["app/Library/myFunctions.php"]
},
Следуйте за этим
composer dump-autoload
проконтролировала Vandor/автозагрузка/autoload_classmap.php имеет как
'Bar' => $baseDir . '/app/Classes/Bar.php',
'Foo' => $baseDir . '/app/Classes/Foo.php',
Я положил простая функция в каждом классе, например:
<?php
class Bar {
public function __construct(){
echo 'Bar';
}
}
?>
Тогда я пытаюсь ссылаться на него
new Bar;
и получить ошибку
FatalErrorException in LoginController.php line 24:
Class 'App\Http\Controllers\Login\Bar' not found
ТЕПЕРЬ ..... решить ошибку я ставлю
new \Bar;
и мы хороши.
Есть ли какая-то причина, по которой мне нужно «\» в моем коде. Это исправление мне нигде не найти в документах, я просто заметил это на ларакастах и добавил его в расстройство, и он работает.
Похоже, я могу добавить App \ Classes \ Bar наверху, а затем создать новый бар; ИЛИ Я могу пропустить это и сделать новый \ App \ Classes \ Bar; Но я считаю, что я тестирую это из более глубокой папки, и большинство примеров, которые я следую, находятся в корневой папке .... – Iannazzi
Однако просто использование «use Foo» не работает. – Iannazzi
Хм, это странно - это \ Бар работает, но пространство имен на самом деле \ App \ Classses \ Bar. Я знаю, что Laravel делает некоторые хитрые трюки с именами классов много, но это все еще кажется странным. – Octo