文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何在Laravel中创建自己的PHP帮助函数

2023-06-14 20:56

关注

小编给大家分享一下如何在Laravel中创建自己的PHP帮助函数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

php是什么语言

php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。

在Laravel中创建自己的PHP帮助函数

Laravel 为我们提供了许多内置的帮助函数,你可以在应用程序中的任何位置调用它。它们使你可以方便地处理数组和对象,路径,字符串,URL和其他类型的工作流。

尽管在 Laravel 核心中定义了许多帮助函数,但你可以在 Laravel 中定义自己的帮助函数以避免重复相同的代码。它确保你的应用程序有更好的可维护性。

我们来看看如何创建自己的定制 Laravel 帮助函数

Laravel 中的帮助函数

Laravel 中有许多内置的帮助程序可供你的应用程序使用。它们根据它们提供的功能类型进行分组。这是一个完整的内置 Laravel 帮助文件。

数组和对象

在这个组中,助手提供了处理数组和对象的能力。 该组包含用于添加两个数组的辅助函数,将多维数组折叠成单个数组,返回数组的第一个元素,检查数组中是否存在给定的项目或项目,并执行许多其他类型的操作。

路径

这组helper返回Laravel应用程序中不同目录的绝对路径,例如 app,config,public,resource,storage和你的应用程序的基本路径。

字符串

该组中的助手使用字符串操作。 你可以将字符串转换为骆驼大小写,找到该类的基本名称,运行 htmlspecialchars,将文本转换为kebab大小写,将文本转换为大小写,并执行许多其他类型的字符串操作。

URL

助手的URLs组与生成URL一起工作。你可以为控制器操作生成URL,命名为route,以及指定路径的完全限定URL。

杂项

这类帮助程序包含处理页面状态,服务容器,认证,缓存等功能。

在Laravel中创建帮助文件

在本节中,我们将通过创建Laravel帮助程序文件,该文件可以在Laravel应用程序中全局使用。 你可以组织你的帮助程序文件的位置,但是,我更愿意将我的Laravel项目帮助程序文件保存在 app/Helpers/Helper.php 中。 在本教程中,我们将在我想要的位置创建一个帮助文件。

创建一个帮助文件

你可以将你的帮助程序文件放在你的Laravel应用程序的任何位置,将它放在你的应用程序目录下是标准的。
让我们在app下创建一个 Helpers 目录并创建一个 Helper.php 文件。这些是该文件的以下内容。

<?phpif (!function_exists('human_file_size')) {        function human_file_size($bytes, $decimals = 2)    {        $sz = 'BKMGTPE';        $factor = (int)floor((strlen($bytes) - 1) / 3);        return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . $sz[$factor];    }}if (!function_exists('in_arrayi')) {        function in_arrayi($needle, $haystack, $strict = false)    {        return in_array(strtolower($needle), array_map('strtolower', $haystack), $strict);    }}

如果你正在使用一个类并且它的方法是你的助手,你可以用命名空间声明来启动这个文件。

namespace App\Helpers;

如果你不使用命名空间声明,则这些函数将变为全局可用,你甚至可以在不指定名称空间的情况下使用它们。 所有Laravel内置的帮助函数都是在没有命名空间的情况下定义的。 此外,助手类也将在全局范围内提供。 因此,如果你想在不指定命名空间的情况下使用助手,只需删除这一行。

定义这些函数时有一些注意事项。所有的Laravel助手文件函数都会被检查以避免函数定义冲突。

if (!function_exists('human_file_size')) {    function human_file_size($bytes, $decimals = 2)    {        // ...    }}

如果跳过此检查,则每次重新定义具有相同定义的函数时都会发生冲突。你可以使用这个检查,或者你也可以用你的函数名称作为前缀来避免冲突。

使用帮助文件

现在,就我们的帮助文件而言,就是这样。让我们看看如何在Laravel应用程序中使用助手文件。

让我们看看如何使用所有这些方法。

通过Composer自动加载

第一个非常简单直接。 只需转到位于Laravel项目中的 composer.json 文件,你将看到自动加载 key。 Composer 有一个key files(你想自动加载的文件路径数组),你可以在自动 `autoload 中使用它。 如:

"autoload": {    "files": [        "app/Helpers/Helper.php"    ],    "classmap": [        "database/seeds",        "database/factories"    ],    "psr-4": {        "App\\": "app/"    }},

更改composer.json文件并向文件数组添加新路径后,需要重新生成自动加载文件。只需从Laravel项目目录中的终端运行此命令即可。

composer dump-autoload

现在,你的帮助程序文件将自动加载到你的Laravel项目中。

通过服务提供者加载

让我们来看看如何使用服务提供者来自动加载助手文件。转至应用程序根目录中的命令行并运行以下命令以创建新的服务提供者。

php artisan make:provider HelperServiceProvider

将会提示运行结果

Provider created successfully.

一旦服务提供者成功创建,打开该文件。在注册方法中添加你的助手文件。

public function register(){    $file = app_path('Helpers/Helper.php');    if (file_exists($file)) {        require_once($file);    }}

在注册方法中,我们包含了我们的依赖关系。 在大型项目中,你可能在目录中有多个帮助程序文件,并且你想要全部这些文件。 你可以更改注册方法,如下所示,你的服务提供商将加载Helpers目录中的所有文件。

public function register(){    foreach (glob(app_path() . '/Helpers/*.php') as $file) {        require_once($file);    }}

它将需要 app/Helpers 目录中的所有文件。
现在我们的服务提供者已经完成,我们需要注册我们的服务提供者,所以,Laravel会在引导期间加载它。 为此,请转至 config/app.php 并在结尾处的 providers 数组中添加以下行。

App\Providers\HelperServiceProvider::class,

如果你的帮助文件涉及到一个拥有这些帮助方法的类,并且你已经指定了命名空间,那么你可以通过定义一个别名来毫不费力地使用它们。 您可以通过在 config/app.php 文件中的别名数组末尾添加以下内容轻松完成此操作。

'Helper' => App\Helpers\Helper::class,

通过将这添加到别名数组中,你将能够使用Helper关键字调用助手。这就是为服务提供者创建你的帮手。

使用第三方包加载

你也可以使用第三方package: Laravel helpers package(https://github.com/browner12/helpers/)。你可以通过在控制台中从你的应用程序的根目录运行此命令来通过编写器安装它。

composer require browner12/helpers

config/app.php 中的 providers 数组中添加以下行

browner12\helpers\HelperServiceProvider::class,

如果你正在使用Laravel的自动包发现功能,则可以跳过此步骤。 完成必要的步骤之后,你可以使用此命令创建助手文件。

php artisan make:helper Helper

它将在 App\Helpers 中创建一个 Helper.php 文件,你可以轻松添加所有帮助程序功能。

Helper 的具体使用

现在我们的函数在Helper文件中定义,没有定义名称空间,我们可以很容易地使用它们。 只需在 routes/web.php 中找到你的路由文件,并将此功能用于首页。 例如,这是完整的 routes/web.php 文件:

<?phpRoute::get('/', function () {    return human_file_size(1024*1024);});

它将简单地返回作为参数传递的字节数的可读大小。你可以从任何地方控制器或视图调用这些函数。

以上是“如何在Laravel中创建自己的PHP帮助函数”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯