sebastiaanluca/laravel-helpers

此包已被废弃,不再维护。未建议替代包。

一组广泛的Laravel框架辅助函数和集合宏。

6.0.0 2020-10-19 15:36 UTC

This package is auto-updated.

Last update: 2023-02-06 03:17:34 UTC


README

logo.png

Latest stable release Software license Build status Total downloads Total downloads

Read my blog View my other packages and projects Follow @sebastiaanluca on Twitter Share this package on Twitter

一组广泛的Laravel框架辅助函数和集合宏。

目录

要求

  • PHP 7.3或更高版本
  • Laravel 7.0或更高版本

如何安装

只需使用Composer将包添加到您的项目中,Laravel将自动发现它

composer require sebastiaanluca/laravel-helpers

如果您想使用集合调试宏,请安装 kint-php/kint 包作为开发依赖项

composer require kint-php/kint --dev

从1.x升级

所有必要的通用PHP辅助函数都已提取到它们自己的 sebastiaanluca/php-helpers 包中,并且一些其他辅助函数已移除,以期待它们自己的包。从现在起,Laravel Helper将仅包含Laravel框架的辅助函数。

查看变更日志 获取更多信息。

框架辅助函数

locale

获取活动应用程序的locale或默认locale(如果未设置或不存在)。

locale();

// "en"

is_guest

确定当前用户是否为访客。

is_logged_in 的相反。

// When not authenticated
is_guest();

// true

// When authenticated as a user
is_guest();

// false

is_logged_in

确定当前用户是否已验证。

is_guest 的相反。

// When not authenticated
is_logged_in();

// false

// When authenticated as a user
is_logged_in();

// true

user

获取当前已验证的用户(如果有的话)。

登录时,返回您的用户模型或实现 \Illuminate\Contracts\Auth\Authenticatable 的对象。

// When not authenticated
user();

// null

// When authenticated as a user
user();

// Illuminate\Foundation\Auth\User {}

me

获取当前已验证的用户(如果有的话)。

登录时,返回您的用户模型或实现 \Illuminate\Contracts\Auth\Authenticatable 的对象。

user 的替代方案。

// When not authenticated
me();

// null

// When authenticated as a user
me();

// Illuminate\Foundation\Auth\User {}

集合宏

carbonize

从集合中的项目创建Carbon实例。

collect([
    'yesterday',
    'tomorrow',
    '2017-07-01',
])->carbonize();

/*
Illuminate\Support\Collection {
    all: [
        Carbon\Carbon {
            "date": "2017-07-09 00:00:00.000000",
            "timezone_type": 3,
            "timezone": "UTC",
        },
        Carbon\Carbon {
            "date": "2017-07-11 00:00:00.000000",
            "timezone_type": 3,
            "timezone": "UTC",
        },
        Carbon\Carbon {
            "date": "2017-07-01 00:00:00.000000",
            "timezone_type": 3,
            "timezone": "UTC",
        },
    ],
}
*/

between

将每个集合项减少到给定开始和结束字符串之间的值。

第二个参数是可选的,如果为null,则回退到起始字符串。

collect([
    '"value1"',
    '"value2"',
    '"value3"',
])->between('"', '"');

/*
Illuminate\Support\Collection {
    all: [
        "value1",
        "value2",
        "value3",
    ],
}
*/

transformKeys

对集合的键执行操作。

可调用操作可以是全局方法或闭包。

collect([
    'a' => 'value',
    'b' => 'value',
    'c' => 'value',
])->transformKeys('strtoupper');

/*
Illuminate\Support\Collection {
    all: [
        "A" => "value",
        "B" => "value",
        "C" => "value",
    ],
}
*/
collect([
    'a' => 'value',
    'b' => 'value',
    'c' => 'value',
])->transformKeys(function (string $key) {
    return 'prefix-' . $key;
});

/*
Illuminate\Support\Collection {
    all: [
        "prefix-a" => "value",
        "prefix-b" => "value",
        "prefix-c" => "value",
    ],
}
*/

transpose

转置(翻转)集合矩阵(数组数组),使其列变为行,行变为列。

collect([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
])->transpose();

/*
Illuminate\Support\Collection {
    all: [
        [1, 4, 7],
        [2, 5, 8],
        [3, 6, 9],
    ],
}
*/

transposeWithKeys

翻转行和每列的值,使其列变为行,行变为列。

之前

id name
A 1 James
B 2 Joe
C 3 Jonas

之后

A B C
id 1 2 3
name James Joe Jonas

如何使用

collect([
    'A' => [
        'id' => 1,
        'name' => 'James',
    ],
    'B' => [
        'id' => 2,
        'name' => 'Joe',
    ],
    'C' => [
        'id' => 3,
        'name' => 'Jonas',
    ],
])->transposeWithKeys();

/*
Illuminate\Support\Collection {
    all: [
        "id" => [
            "A" => 1,
            "B" => 2,
            "C" => 3,
        ],
        "name" => [
            "A" => "James",
            "B" => "Joe",
            "C" => "Jonas",
        ],
    ],
}
*/

如果您不想自动猜测,也可以传递一些行标题名称。然后,您可以使用transposeWithKeys(['myID', 'row2'])调用宏,结果行将分别是myIDrow2,而不是分别对应的idname

d

使用Kint在集合上显示结构化调试信息。可以在集合的方法链中多次调用,并在每个使用点输出调试信息。之后继续脚本执行。

明确要求使用kint-php/kint包。

collect([
    'id' => 6,
    'name' => 'Sebastiaan',
])
->d()
->put('role', 'author')
->d();

ddd

使用Kint在集合上显示结构化调试信息。之后停止脚本执行,因此只能在集合的方法链中调用一次。

明确要求使用kint-php/kint包。

collect([
    'id' => 6,
    'name' => 'Sebastiaan',
])
->d()
->put('role', 'author')
->ddd();

许可协议

本软件包在MIT许可协议(MIT)下运行。有关更多信息,请参阅LICENSE

变更日志

请参阅CHANGELOG,以获取有关最近更改的更多信息。

测试

composer install
composer test

贡献

请参阅CONTRIBUTINGCODE_OF_CONDUCT,以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过hello@sebastiaanluca.com发送电子邮件,而不是使用问题跟踪器。

鸣谢

关于

我的名字是Sebastiaan,我是一名自由职业的Laravel开发者,专注于构建定制的Laravel应用程序。查看我的作品集以获取更多信息,我的博客获取最新的技巧和窍门,以及我的其他软件包来启动您的下一个项目。

您有一个可能需要一些指导的项目吗?请给我发送电子邮件至hello@sebastiaanluca.com