如果我想为一些oauth的东西做一个当前用户()
函数,我可以在视图或控制器中使用它(想想rails,你在应用程序控制器中做helper_method:current_user
)。
我阅读的所有内容都说明要创建一个helpers文件夹并在那里添加函数,然后您可以这样做helpers::functionName
这是正确的方法吗?
创建可用于刀片模板和控制器的辅助函数的“laravel方式”是什么?
通常,您会发现自己需要一个在整个应用程序中全局访问的实用功能。借用laravel编写默认助手的方式,您可以使用自定义函数扩展该功能。
我更喜欢一个文件而不是一个类,因为我不想为名称空间而烦恼,我希望它的函数可以在没有类前缀的情况下访问,比如:greeting('Brian')
而不是
Helper::问候语('Brian')
就像拉威尔对待他们的助手一样。
文件:
app/Support/helper.php
{
...
"autoload": {
"classmap": [
"database"
],
"files": [
"app/Support/helpers.php"
],
"psr-4": {
"App\\": "app/"
}
},
...
}
<?php
if (!function_exists('greet')) {
/**
* Greeting a person
*
* @param string $person Name
* @return string
*/
function greet($person)
{
return 'Hello ' . $person;
}
}
在尝试访问文件函数之前,请记住自动加载文件:
作曲家转储-自动加载
$ php artisan tinker
Psy Shell v0.8.17 (PHP 7.0.6 ΓÇö cli) by Justin Hileman
>>> greet('Brian');
=> "Hello Brian"
>>> exit
Exit: Goodbye.
<p>{{ greet('Brian') }}</p>
有时,您会发现自己想要使用blade指令而不是普通函数。在AppServiceProvider的引导方法中注册刀片指令:
app/Providers/AppServiceProvider.php
public function boot()
{
// ...
Blade::directive('greet', function ($expression) {
return "<?php echo greet({$expression}); ?>";
});
}
用法:
注意:您可能需要清除缓存视图
php artisan view:清除
创建全局函数文件的一种简单有效的方法是直接从Composer自动加载它。composer的自动加载部分接受自动加载的文件
数组。
>
添加函数,但不要添加类或命名空间。
<?php
function global_function_example($str)
{
return 'A Global Function with '. $str;
}
在composer.json
中的autoload
部分添加以下行:
"files": ["app/Helpers/functions.php"]
Laravel 5的示例:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": ["app/Helpers/functions.php"] // <-- Add this line
},
运行作曲家转储-自动加载
完成!您现在可以访问global_function_example('Hello world')
形成您的应用程序的任何部分,包括Blade视图。
在app/Helpers目录中创建一个新文件,将其命名为AnythingHelper.php my helper的一个示例是:
<?php
function getDomesticCities()
{
$result = \App\Package::where('type', '=', 'domestic')
->groupBy('from_city')
->get(['from_city']);
return $result;
}
通过以下命令为您的助手生成服务提供程序
php artisan make:provider HelperServiceProvider
在新生成的HelperServiceProvider.php的register函数中添加以下代码
require_once app_path('Helpers/AnythingHelper.php');
现在在你的配置/app.php加载这个服务提供程序,你就完成了
'App\Providers\HelperServiceProvider',
这个安全辅助函数文件包含一系列和安全相关的函数。 加载这个辅助函数 辅助函数可以使用如下代码进行加载:$this->load->helper('security'); 可以使用下面的函数: xss_clean() 这个函数提供了 XSS 过滤,其实它是输入类的一个别名,关于更多的信息可以到那里去查看。 sanitize_filename() 此函数对目录遍历提供保护. 其实它是 安全类(下$thi
安全辅助函数文件包含了一些和安全相关的函数。 加载辅助函数 可用函数 加载辅助函数 该辅助函数通过下面的代码加载: $this->load->helper('security'); 可用函数 该辅助函数有下列可用函数: xss_clean($str[, $is_image = FALSE]) 参数: $str (string) -- Input data $is_image (bool) --
简介 Laravel 包含各种各样的全局「辅助」PHP 函数,框架本身也大量地使用了这些功能;如果你觉得方便,你可以在你的应用中自由的使用它们。 可用方法 数组 & 对象 array_add array_collapse array_divide array_dot array_except array_first array_flatten array_forget array_get arra
列标字符转化 获取扩展版本 查看作者信息
辅助函数,顾名思义,是帮助我们完成特定任务的函数。每个辅助函数文件仅仅是一些函数的集合。例如,URL Helpers 可以帮助我们创建链接,Form Helpers 可以帮助我们创建表单,Text Helpers 提供一系列的格式化输出方式,Cookie Helpers 能帮助我们设置和读取COOKIE, File Helpers 能帮助我们处理文件,等等。 跟其他部分不同的是,辅助函数不是用类的