googleshokry/laravel-helpers

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

dev-master 2018-10-29 05:45 UTC

This package is auto-updated.

Last update: 2024-09-29 05:02:13 UTC


README

Latest stable release Software license Build status Total downloads

View my other packages and projects Follow @googleshokry on Twitter Share this package on Twitter

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

目录

要求

  • PHP 7.2或更高版本
  • Laravel 5.6或更高版本

如何安装

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

composer require googleshokry/laravel-helpers

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

composer require kint-php/kint --dev

从1.x升级

所有必要的通用PHP辅助函数都已提取到它们自己的googleshokry/php-helpers包中,并且为了它们自己的包,已删除了一些其他辅助函数。实际上,从现在起,Laravel Helpers将仅包含Laravel框架的辅助函数。

此外,最低要求已升级到PHP 7.2和Laravel 5.6。

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

框架辅助函数

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

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

之前

之后

如何使用

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)。请参阅许可证获取更多信息。

变更日志

请参阅变更日志了解最近的变化。

测试

composer install
composer test

贡献

请参阅贡献指南行为准则获取详细信息。

安全

如果您发现任何与安全相关的问题,请发送电子邮件至sms.shokry.mohamed@gmail.com,而不是使用问题跟踪器。

致谢

关于

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

您有一个需要指导的项目吗?请发送电子邮件至sms.shokry.mohamed@gmail.com