etchfoda / laravel-arabic-numbers-middleware
自动将阿拉伯/东方数字转换为东方/阿拉伯数字,例如将 ١٢٣٤٥٦٧٨ 转换为 12345678
2.2.0
2022-12-24 09:34 UTC
Requires
- illuminate/support: ^5.8|^6.0|^7.0|^8.0|^9.0
Requires (Dev)
- orchestra/testbench: ^3.5
- phpunit/phpunit: ^7.0
- squizlabs/php_codesniffer: ^2.3
README
一个用于将阿拉伯/东方数字转换为东方/阿拉伯数字的迷你包,例如将
١٢٣٤٥٦٧٨
转换为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)。有关更多信息,请参阅 许可证文件