dominik-eller/laravel-data-normalizer

一个用于将电话号码、电子邮件和其他输入数据格式化为标准格式的Laravel包。

v1.1.0 2024-09-26 11:25 UTC

This package is auto-updated.

Last update: 2024-09-26 11:28:27 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

一个用于将电话号码、电子邮件和其他输入数据格式化为标准格式的Laravel包。

安装

您可以通过composer安装此包

composer require dominik-eller/laravel-data-normalizer

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="laravel-data-normalizer-config"

这是发布配置文件的内容

return [
    'phone' => [
        'default_country' => 'DE',
        'format' => 'E164',
    ],
    'email' => [
        'trim_whitespace' => true,
        'lowercase' => true,
    ],
];

用法

标准化电话号码

use Deller\DataNormalizer\Facades\PhoneNormalizer;

$normalizedPhone = PhoneNormalizer::create('phone')->normalize('+49 (151) 123 45678');
// $normalizedPhone will be "+4915112345678" (E.164 format)

格式化电话号码

use Deller\DataNormalizer\Facades\PhoneFormatter;

$formattedPhone = PhoneFormatter::create('phone')->format('+4915112345678', ['format' => 'INTERNATIONAL']);
// $formattedPhone will be "+49 151 1234 5678"

标准化电子邮件地址

use Deller\DataNormalizer\Facades\EmailNormalizer;

$normalizedEmail = EmailNormalizer::create('email')->normalize('  JohnDoe@Example.com  ');
// $normalizedEmail will be "johndoe@example.com"

格式化电子邮件地址

use Deller\DataNormalizer\Facades\EmailFormatter;

$formattedEmail = DataFormatter::create('email')->format('  JohnDoe@Example.com  ');
// $formattedEmail will be "johndoe@example.com"

注册自定义格式化器

use Deller\DataNormalizer\Factories\DataFormatterFactory;

class CustomFormatter implements \Deller\DataNormalizer\DataFormatter
{
    public function format($data)
    {
        return 'Formatted: ' . strtoupper($data);
    }
}

// Register the custom formatter type
DataFormatterFactory::registerType('custom', CustomFormatter::class);

// Use the custom formatter via the facade
$customFormatter = \Deller\DataNormalizer\Facades\DataFormatter::create('custom');
echo $customFormatter->format('some data'); // Output: "Formatted: SOME DATA"

注册自定义标准化器

use Deller\DataNormalizer\Factories\DataNormalizerFactory;

class CustomNormalizer implements \Deller\DataNormalizer\DataFormatter
{
    public function normalize($data)
    {
        return 'Normalized: ' . strtolower(trim($data));
    }
}

// Register the custom normalizer type
DataNormalizerFactory::registerType('custom', CustomNormalizer::class);

// Use the custom normalizer via the facade
$customNormalizer = \Deller\DataNormalizer\Facades\DataNormalizer::create('custom');
echo $customNormalizer->normalize('  SOME DATA  '); // Output: "Normalized: some data"

测试

composer test

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTING

安全漏洞

请通过电子邮件me@dominik-eller.de报告安全漏洞,而不是使用问题跟踪器。

鸣谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件