Ответ 1
Я не думаю, что можно использовать только функцию, когда у вас есть код в ваших классах. Ну, вы можете попробовать с расширением Blade, но это слишком много.
Что вам нужно сделать, так это создать один дополнительный файл, например app\Helpers\helpers.php
и в файле composer.json:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": ["app/Helpers/helpers.php"] // <- this line was added
},
создать файл app/Helpers/helpers.php
и запустить
composer dump-autoload
Теперь в вашем файле app/Helpers/helpers.php
вы можете добавить такие пользовательские функции, например:
if (! function_exists('fooBar')) {
function fooBar()
{
return \App\Helpers\CustomHelper::fooBar();
}
}
поэтому вы определяете глобальные функции, но на самом деле все они могут использовать определенные публичные методы из некоторых классов.
Кстати, это именно то, что делает Laravel для своих собственных помощников, например:
if (! function_exists('array_add')) {
function array_add($array, $key, $value)
{
return Arr::add($array, $key, $value);
}
}
как вы видите, array_add
является только более коротким (или, может быть, менее подробным) способом письма Arr::add