creativitykills / sanity
数组清理器包。
1.0.0
2015-03-10 10:37 UTC
Requires
- php: >=5.4.0
- illuminate/support: ~5.0
Requires (Dev)
- phpspec/phpspec: ~2.1
This package is auto-updated.
Last update: 2024-08-28 23:37:56 UTC
README
此包是 PHP 数组的清理器。最好用于清理像来自 $_POST 和/或 $_GET 的请求输入。
用法
步骤 1:通过 Composer 安装
composer require 'creativitykills/sanity'
步骤 2:添加服务提供者
打开 config/app.php 并将以下内容添加到末尾的 "providers" 数组中:
"CreativityKills\Sanity\SanityServiceProvider"
清理请求
默认情况下,您可以直接通过清理器运行请求。
<?php // Possibly input from $_POST or $_GET global array $someArray = ['name' => ' JOHN DOE ', 'email' => ' JOHN@DOE.COM ']; // Rules to validate against $sanitizerRules = ['name' => 'ucwords|trim', 'email' => 'strtolower|trim']; $sanitizer = new \CreativityKills\Sanity\Sanitizer; $someArray = $sanitizer->sanitize($someArray, $sanitizerRules); // array( // 'name' => 'John Doe', // 'email' => 'john@doe.com' // ) var_dump($someArray);
自定义清理器
Sanity 的美妙之处在于扩展 Sanity 类。您可以创建类的自定义扩展。
<?php use CreativityKills\Sanity\Sanitizer; class UserSanitizer extends Sanitizer { protected $rules = [ 'name' => 'ucwords|trim|remove_excess_white_spaces', 'email' => 'strtolower|trim' ]; public function sanitizeRemoveExcessWhiteSpaces($value) { return preg_replace('/\s+/', ' ', $value) } }
注意自定义的
remove_excess_white_spaces清理器是在sanitizeRemoveExcessWhiteSpaces方法中调用的。所有蛇形命名清理规则都转换为驼峰式。
现在我们可以像这样从我们的应用程序中调用我们的自定义清理器:
<?php // Possibly input from $_POST or $_GET global array $someArray = ['name' => ' JOHN DOE ', 'email' => ' JOHN@DOE.COM ']; $someArray = (new UserSanitizer)->sanitize($someArray); // array( // 'name' => 'John Doe', // 'email' => 'john@doe.com' // ) var_dump($someArray);