peeyush-budhia / sanitizer
PHP 和 Laravel 框架的清理库。
v1.5
2023-02-17 07:23 UTC
Requires
- php: ^8.0
- illuminate/support: ^9.0|^10.0
- illuminate/validation: ^9.0|^10.0
- nesbot/carbon: ^1.0|^2.0
Requires (Dev)
- phpunit/phpunit: ^9.0
README
PHP 和 Laravel 框架的清理库。
安装
您可以通过 composer 安装此包
composer require peeyush-budhia/sanitizer
核心 PHP 使用
use Peeyush\Sanitizer\Sanitizer; $data = [ 'name' => ' peeyush ', 'birth_date' => '1987-09-10', 'email' => 'Peeyush.Budhia@Gmail.CoM', 'phone' => '(000)-000-00-00', 'json' => '{"name":"Peeyush"}', ]; $filters = [ 'name' => 'trim|capitalize', 'birth_date' => 'trim|format_date:"Y-m-d","F j, Y"', 'email' => ['trim', 'lowercase'], 'phone' => 'digit' 'json' => 'cast:array', ]; $sanitizer = new Sanitizer($data, $filters); var_dump($sanitizer);
将返回
[ 'name' => 'Peeyush', 'birth_date' => 'September 10, 1987', 'email' => 'peeyush.budhia@gmail.com', 'phone' => '0000000000' 'json' => ['name' => 'Peeyush'], ];
Laravel 使用
- 在
config/app.php
中注册provider
并更新 Sanitizer 的alias
如下
'providers' => [ /* * Package Service Providers... */ \Peeyush\Sanitizer\SanitizerServiceProvider::class, ]
'aliases' => [ /* * Package aliases... */ 'Sanitizer' => \Peeyush\Sanitizer\Facade\SanitizerFacade::class, ],
- 现在发布
request.stub
和tests
目录。要发布,请在应用程序根目录的终端上运行以下命令
php artisan vendor:publish --provider="Peeyush\Sanitizer\SanitizerServiceProvider"
在上述过程之后,您可以使用 Sanitizer 如下
- 通过 Facade 使用 Sanitizer
$data = Sanitizer::make($data, $filters)->sanitize();
- 使用 SanitizeInput trait 在您的 FormRequests 中清理输入。请注意,您需要添加一个返回要应用到输入的过滤器的 filters 方法。
namespace App\Http\Requests; use Peeyush\Sanitizer\SanitizeInput; class ExampleRequest extends Request { use SanitizeInput; public function filters() { return [ 'name' => 'trim|capitalize', ]; } }
- 要在应用程序根目录的终端上自动生成请求文件,请运行以下命令
php artisan make:Request ExampleRequest
可用的过滤器
自定义过滤器
- 使用闭包或实现
Peeyush\Sanitizer\Contracts\Filter
接口的类
class RemoveStringFilter implements \Peeyush\Sanitizer\Contracts\Filter { public function apply($value, array $options) { return str_replace($options, '', $value); } } $filters = [ 'remove_strings' => RemoveStringsFilter::class, ]; $sanitize = new Sanitizer($data, $filters)
鸣谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 获取更多信息。