Работая над проектом, использующим Laravel 4, если быть точным, я решил, что хочу создать свой собственный вспомогательный файл для размещения своих пользовательских функций … Одна из которых приведена ниже …
function pr($ar=array(), $bool=false){
echo '<pre>';
print_r($ar);
echo '</pre>';
if($bool){
exit;
}
}
В моем файле composer.json, сразу после autoload: classmap, я добавил myne, autoload: files -arrar и включил мой пользовательский файл app / helpers, как показано ниже.
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"],
"others":[
"app/helpers.php"]
и я переключился на свое окно терминала и выполнил следующие команды
composer dump-autoload -o
но я все еще получаю ошибки, что моя функция pr () была неопределена … затем я попробовал альтернативный вариант … [-o], чтобы оптимизировать файлы
php artisan dump-autoload
но все равно он отказался работать … а потом я изменил имя массива с
"others":[
"app/helpers.php"]
в
"files":[
"app/helpers.php"]
затем я получил желаемый ответ, мой код теперь мог видеть написанную мной пользовательскую функцию, пожалуйста, я хотел бы знать, есть ли шаблон, которому я должен следовать, или иначе, в моем случае, я принял «файлы» за другие «, и я получил ошибки, но в случае, что я здесь упустил, все, что я вижу, это просто значение строки имени для представления массива ….
Вот как работает композитор. В autoload
раздел, который вы должны использовать files
когда вы хотите загрузить несколько файлов. Например, в моем проекте Laravel 5:
"autoload": {
"classmap": [
"database",
"tests/TestCase.php"],
"psr-4": {
"App\\": "app/",
"verify\\": "verify/"},
"files": [
"app/Helpers/functions.php"]
},
Если вы посмотрите на документация вы увидите, что вам нужно использовать files
загрузить любые дополнительные файлы автозагрузчиком.
Согласно официальная документация
В настоящее время автозагрузка PSR-0, автозагрузка PSR-4, генерация карты классов
и файлы включают в себя поддерживаются. PSR-4 является рекомендуемым способом, хотя
поскольку он предлагает большую простоту использования (нет необходимости регенерировать
автозагрузчик при добавлении классов).
Так что причина того, что "others"
не работал, потому что он не поддерживается композитором. "others"
просто бессмысленно, а "files"
на самом деле есть специальный механизм автозагрузки.