Laravel 自定义辅助函数 – 快速提示

辅助函数在 laravel 开发者中非常流行。它们提供了对一些巧妙算法的访问,可以使用单个语句在您的代码中使用。

最知名的辅助函数可能是 url(),它允许您生成内部应用程序 url。

另一个很棒的帮手是 retry() 函数,例如:https://laravel.com/docs/11.x/helpers#method-retry

在触发异常时重试语句一定次数的简单方法。它通常用于外部 api 调用,事实上它最近被集成为 laravel http 客户端中的一个方法。

$response = http::retry(3, 100)->post(/* ... */);

有关 http 客户端的更多信息,请参见专门文章:https://inspector.dev/laravel-http-client-overview-and-monitoring/

laravel 辅助函数用例

有时我们希望自动化与业务逻辑相关的任务,并将其封装到辅助函数中可能会非常方便。我写了关于关联数组的 array_map 的实现,它非常适合这个用例。

你可以参考这篇文章来了解这个函数的用途,在这种情况下,我想将它设为一个自定义辅助函数,以便在你的 laravel 应用程序中使用。

如何注册新的 laravel 辅助函数

首先在 laravel 项目的 app/ 目录中创建一个新文件 helper.php。

laravel directory tructure

将以下代码粘贴到文件中以声明 array_map_assoc 函数:

if (!function_exists('array_map_assoc')) {
    /**
     * apply a mapping callback receiving key and value as arguments.
     * the standard array_map doesn't pass the key to the callback. but in the case of associative arrays,
     * it could be really helpful.
     *
     * array_map_assoc(function ($key, $value) {
     *  ...
     * }, $items)
     *
     * @param callable $callback
     * @param array $array
     * @return array
     */
    function array_map_assoc(callable $callback, array $array): array
    {
        // map original array keys, and call $callable with $key and $value.
        return array_map(function($key) use ($callback, $array){
            return $callback($key, $array[$key]);
        }, array_keys($array));
    }
}

正如你所看到的,函数声明被 if 包裹起来,以避免注册同名的函数。

通过 composer 的自动加载包含帮助程序文件

laravel 不会自动加载自定义帮助程序文件,因此您需要手动指示 composer 在自动加载生成过程中包含该文件。

laravel 项目的composer.json 文件中找到“autoload”部分,并添加“files”关键字:

"autoload": {
    "psr-4": {
        "app\\": "app/",
        "database\\factories\\": "database/factories/",
        "database\\seeders\\": "database/seeders/"
    },
    "files": [
        "app/helpers.php"
    ]
},

添加文件后,在终端中运行 composer dump-autoload 来刷新 composer 的自动加载文件。

使用 laravel 辅助函数

加载帮助程序文件后,您可以在 laravel 应用程序中的任何位置使用自定义函数,就像任何其他 php 函数一样。

$histogram = array_map_assoc(function ($key, $value) {
    return [
        'label' => $key,
        'value' => $value['doc_count']
    ];
}, $data);

希望它对保持代码库的井然有序有所帮助。

想要了解更多技术文章,您可以在 linkedin 或 x 上关注我。

免费监控您的 php 应用程序

inspector是一款专为软件开发人员设计的代码执行监控工具。您无需在服务器级别安装任何内容,只需安装 laravelsymfony 软件包即可开始使用。

如果您正在寻找 http 监控、数据库查询见解以及将警报和通知转发到您首选消息传递环境的功能,请免费尝试 inspector。注册您的帐户。

或在网站上了解更多信息:https://inspector.dev

Laravel 自定义辅助函数 – 快速提示

以上就是Laravel 自定义辅助函数 – 快速提示的详细内容,更多请关注其它相关文章!