MichaelRubel/laravel-formatters

此包收集了您可以在Laravel应用程序中使用的类,用于标准化数据格式。它使用服务容器来轻松扩展或覆盖格式化器类。

8.0.1 2024-08-21 18:18 UTC

README

Laravel Formatters

Laravel格式化器

Latest Version on Packagist Total Downloads Code Quality Code Coverage GitHub Tests Action Status PHPStan

此包引入了您可以在Laravel应用程序中使用的Formatter模式来标准化数据格式。您可以在app/Formatters文件夹中编写自己的格式化器,然后通过format辅助函数在应用程序的任何地方应用它们。该包底层使用服务容器来轻松扩展或覆盖格式化器类。

此包需要PHP 8.1或更高版本以及Laravel 10或更高版本。如果您正在寻找旧版本,请检查版本历史

#StandWithUkraine

SWUbanner

安装

通过Composer安装包

composer require michael-rubel/laravel-formatters
php artisan vendor:publish --tag="formatters-config"

使用方法

format(DateTimeFormatter::class, now());

您可以使用字符串的简短版本作为替代

format('date-time', now());

内置格式化器

Artisan命令

为了使程序员的寿命更轻松,我们还添加了Artisan命令。您可以使用make:formatter命令生成格式化器类。它将具有给定名称的类放入app/Formatters文件夹,并自动注入存根。

扩展格式化器

由于格式化器是通过服务容器解析的,因此可以通过扩展绑定轻松覆盖它们。

例如,在您的服务提供者中

$this->app->extend(DateTimeFormatter::class, function ($formatter) {
    $formatter->datetime_format = 'Y.m.d H:i';

    return $formatter;
});

添加自定义/覆盖包格式化器

要添加自定义格式化器,您应该创建实现MichaelRubel\Formatters\Formatter接口的类,并将其放入app/Formatters文件夹。您可以将具有与包同名格式化器的格式化器放入该文件夹以覆盖包中的格式化器。您可以在配置文件中自定义文件夹。

示例

您可以在此处发现用法示例。

贡献

如果您已经编写了自己的格式化器并希望将其添加到该包中,欢迎提交PR。但请注意您希望作为内置格式化器扩展的格式化器的可扩展性,并记得为您的用例编写测试。

测试

composer test