“全局”是指我可以在页面和布局上随处调用的函数,而不是在我应该使用它们的每个地方重复它们
注册函数在这里试试
\System\Classes\MarkupManager::instance()->registerCallback(function($manager){
$manager->registerFunctions([
'myFunction' => function($param1){
return "Hello " . $param1;
},
]);
]);
在布局页面调用中
{{ myFunction('world!') }}
在laravel中的全局功能
在app文件夹
app/helpers.php
中创建helpers.php文件
if (! function_exists('showMessage')) {
function showMessage($message = null)
{
return $message;
}
}
添加composer.json文件以进行自动加载
"autoload": {
"files": [
"app/helpers.php"
],
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
}
},
和转储作曲家
composer dump-autoload
为了更多的理解阅读这个tutorial
创建全局函数文件是直接从编写器自动加载它。
functions.php
文件,在这个例子中,我们将在app/Helpers
中创建它。<?php
function global_function_example($str)
{
return 'A Global Function with '. $str;
}
composer.json
部分内的autoload
中添加以下行:
"files": ["app/Helpers/functions.php"]
composer dump-autoload
您现在可以在应用程序的任何位置访问global_function_example('hello world')表单,这是检查blade file
的简单方法:
{{ global_function_example('hello world') }}
您可以创建自己的自定义插件,并在Plugin.php中使用registerMarkupTags
public function registerMarkupTags()
{
return [
'functions' => [
'currentUrl' => function () {
return request()->getRequestUri();
},
'currentUrlFull' => function () {
return URL::to(request()->getRequestUri());
},
'ip' => function () {
return Request::ip();
}
]
];
}