etchfoda/laravel-arabic-numbers-middleware

自动将阿拉伯/东方数字转换为东方/阿拉伯数字,例如将 ١٢٣٤٥٦٧٨ 转换为 12345678

2.2.0 2022-12-24 09:34 UTC

This package is auto-updated.

Last update: 2024-09-24 13:35:25 UTC


README

Latest Version on Packagist Software License Build Status StyleCI Coverage Status Quality Score Total Downloads

一个用于将阿拉伯/东方数字转换为东方/阿拉伯数字的迷你包,例如将 ١٢٣٤٥٦٧٨ 转换为 12345678,在验证之前避免因通过(ios/mac)用户传递东方数字而出现无效整数错误

  • 这些数字在阿拉伯语中被称为 "أرقام هندية" ("印度数字")。它们有时也被称为 "Indic numerals"(印度数字)。然而,有时不鼓励这样做,因为它可能会导致与印度数字混淆

支持版本

安装

通过 Composer

$ composer require yemenifree/laravel-arabic-numbers-middleware

用法

如果您不运行 Laravel 5.5(或更高版本),则请在 config/app.php 中添加服务提供者

Yemenifree\LaravelArabicNumbersMiddleware\ServiceProvider::class,

如果您在 Laravel 5.5+ 上运行该包,则 包自动发现 将负责添加服务提供者的魔法。

就是这样!默认情况下,该包自动将所有 eastern 数字转换为 arabic 数字以供所有请求使用

包包含两个中间件

  • "eastern-to-arabic" 将数字从东方转换为阿拉伯(例如,١٢٣ 转换为 123
  • "arabic-to-eastern" 将数字从阿拉伯转换为东方(例如,123 转换为 ١٢٣

您可以使用中间件进行自定义路由,例如

Route::any('/login', ['middleware' => 'eastern-to-arabic', function () {
    // your code
}]);

您可以通过传递字段名称作为参数到中间件来忽略转换中的字段,例如

// ignore transform pass field 
Route::any('/login', ['middleware' => 'arabic-to-eastern:pass', function () {
    // your code
}]);
        
// you can also ignore multi fields
Route::any('/login', ['middleware' => 'arabic-to-eastern:pass,test', function () {
    // your code
}]);

如果启用自动注册中间件并且您想要在自动中间件选项中使用要使用的中间件,则内联忽略字段不会工作,您可以在配置文件 arabic-numbers-middleware.php 中设置忽略字段

可选

如果您想自定义配置,可以发布配置

$ php artisan vendor:publish --provider="Yemenifree\LaravelArabicNumbersMiddleware\ServiceProvider"

这是已发布配置文件 arabic-numbers-middleware.php 的内容

return [
    /*
     |--------------------------------------------------------------------------
     | enable auto register middleware for all requests
     |--------------------------------------------------------------------------
     |
     | if you want auto register for custom middleware group
     |      'auto_register_middleware' => ['web'], //for web group only
     |      'auto_register_middleware' => true, //  all groups
     |      'auto_register_middleware' => false, // none
     */
    'auto_register_middleware' => true,

    /*
     |--------------------------------------------------------------------------
     | list of middleware they will register for all requests automatic by package
     |--------------------------------------------------------------------------
     |
     |  Supported Middleware: "arabic-to-eastern", "eastern-to-arabic"
     */
    'auto_middleware' => Yemenifree\LaravelArabicNumbersMiddleware\Middleware\TransformHindiToArabicNumbers::class,

    /*
     |--------------------------------------------------------------------------
     | except transform fields ( POST | GET ) from all middleware
     |--------------------------------------------------------------------------
     |
     | all none string value will be ignore by default, you can ignore fields by name (key) of POST or GET
     |
    */
    'except_from_all' => [
        // 'login'
    ],

    /*
     |--------------------------------------------------------------------------
     | except transform fields ( POST | GET ) from eastern to arabic
     |--------------------------------------------------------------------------
     |
     | all none string value will be ignore by default, you can ignore fields by name (key) of POST or GET
     |
     */
    'except_from_eastern_to_arabic' => [
        // 'mobile'
    ],

    /*
     |--------------------------------------------------------------------------
     | except transform fields ( POST | GET ) from arabic to eastern
     |--------------------------------------------------------------------------
     |
     | all none string value will be ignore by default, you can ignore fields by name (key) of POST or GET
     |
     */
    'except_from_arabic_to_eastern' => [
        // 'mobile'
    ]
];

变更日志

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

测试

$ composer test

贡献

有关详细信息,请参阅 CONTRIBUTING

安全

如果您发现任何与安全相关的问题,请通过电子邮件 yemenifree@yandex.com 而不是使用问题跟踪器来报告

致谢

许可证

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