spresnac/laravel-tactical-time-helper

需要一些关于 Laravel 中战术时间的辅助工具吗?我需要一些处理传入战术时间和从我的项目中发送战术时间字符串的辅助工具,所以这里提供了一些来帮助你。

1.0.0 2024-05-09 08:35 UTC

This package is auto-updated.

Last update: 2024-09-09 09:24:02 UTC


README

关于

此辅助包在处理输入和输出端的战术时间时为你提供了一些帮助。我在我的红十字会相关项目中确实需要这个包,因此它们已经过实战测试 🫡。

它不是功能完整的,所以欢迎你添加代码 🙏

安装

首先,你可以使用以下命令安装此包:

composer install spresnac/laravel-tactical-time-helper --no-dev

使用方法

此包包含两部分来帮助你处理时间。

表单请求规则

表单请求规则提供了一些关于处理用户提供的战术数据的指导。因此,你可以使用“Rules”目录中的“TacticalTime”类。例如,在你的请求类中,你可以这样写:

class CreateEntryRequest extends FormRequest
{
    //...

    public function rules(): array
    {
        return [
            'situation' => 'required|string',
            'tactime' => [
                new \spresnac\tacticaltimehelper\Rules\TacticalTime(),
            ],
            //...
        ];
    }
}

默认情况下,“TacticalTime”规则希望输入为“082145may2024”,而忽略大小写。它忽略大小写是为了防止过于严格(另一边有人类,而大多数情况下,这些人类在战术时间输入时没有太多时间)并且从输入转换为你在数据库中存储的(或任何地方存储的)真实时间时,大小写并不相关;简而言之:Carbon 可以处理它,无论大小写如何 😉

仓库助手

“TacticalTimeRepository”提供了两个静态辅助函数

public static function toTacticalTime(Carbon $time): string

此函数接收一个“Carbon”输入并将其转换为相应的战术时间。在 Laravel 项目中使用 Carbon 非常方便,因为你的大多数日期相关内容都(或应该)是 Carbon(如“created_at”、“updated_at”或在我的情况中是“situation_at”)。
简而言之:只要你的输入是“Carbon”,你就没问题。

public static function fromTacticalTime(string $tactime): Carbon

此函数接收一个字符串并将其转换为相应的“Carbon”对象(因此你可以轻松将其存储到数据库或其他任何你持久化数据的地方)。
输入必须为“082145may2024”,即日期2位数字,小时2位数字,分钟2位数字,月份3个字母缩写,年份4位数字。
结果是你可以进一步工作的“Carbon”对象。

测试

你可以通过安装所有依赖项来测试此包

composer install spresnac/laravel-tactical-time-helper

然后运行

vendor\bin\phpunit

(根据您的操作系统,您可能需要在行前添加 .\)