uppercod / aduana
一个用于安全且简单地清理和过滤数据的库。
This package is not auto-updated.
Last update: 2024-09-20 20:46:47 UTC
README
Aduana 是一个用于安全且简单地清洗和过滤数据的库。
$format = [ "password" => [ "type" => "string", "minLength" => 6, "maxLength" => 20, "required" => true, "pattern" => "/[^\s\t\n]+/", "message" => [ "minLength" => "tu password debe ser mayor a o igual a 6 caracteres", "maxLength" => "tu password no debe ser mayor o igual a 20 caracteres", "required" => "ingresar una password", "pattern" => "tu password no debe contener saltos de línea ni espacios" ] ] ]; $shema = new Aduana\Shema($format); $filter = $shema->filter($_POST)
如前例所示,它展示了 Aduana\Shema 的一个实例,这需要一个数组来指定要过滤的属性及其对应的格式
Aduana\Shema::filter
该方法 filter 允许根据 Aduana\Shema 实例来过滤和清洗数据,它总是会返回 4 个属性。
- valid : 定义是否已正确处理整个 shema 结构,没有无效值。
- dataValid : 返回验证过的属性。
- dataInvalid : 返回所需的无效属性。
- countValid : 是有效属性的计数器。
- countInvalid : 是无效属性的计数器。
请注意,所有无效且非必需的属性在验证结果中都将被忽略。
Aduana\Filter
这个类具有默认的 Aduana 所有的过滤器。
默认情况下,所有负责过滤和清洗的方法都是静态的,接受两个参数 Aduana\Filter::$filter($config, $value)
。
- $config : 定义过滤器的配置。
- $value: 要通过方法过滤或清洗的值。
此外,aduana 内部和外部所有的过滤器都必须返回一个对象,该对象包含两个属性 (object)["valid"=>boolean, "value"=>any ]
。
Aduana\Filter::type (string $config, $value)
基于其类型($config)和值($value)过滤值。
$shema = [ "user_email" => [ "type"=>"email" ] ];
Aduana\Filter::minLength (int $config, string $value)
需要指定一个最小长度来验证值。
$shema = [ "password" => [ "minLength" => 6 ] ];
在 $shema 中的 password 属性,其长度必须大于或等于 6 个字符。
Aduana\Filter::maxLength (int $config, string $value)
需要指定一个最大长度来验证值。
$shema = [ "password" => [ "maxLength" => 12 ] ];
在 $shema 中的 password 属性,其长度必须小于或等于 12 个字符。
Aduana\Filter::min (int $config, int $value)
定义一个数值最小值。
$shema = [ "age" => [ "min" => 18 ] ];
在 $shema 中的 age 属性,其值必须大于或等于 18。
Aduana\Filter::max (int $config, int $value)
定义一个数值最小值。
$shema = [ "age" => [ "max" => 30 ] ];
在 $shema 中的 age 属性,其值必须小于或等于 30。
Aduana\Filter::stripTags ($config, string $value)
对指向 schema 指针的值应用 strip_tags 函数。
$shema = [ "message_1" => [ "stripTags" => true ], "message_2" => [ "stripTags" => "<p>" ] ];
如你所见,可以在 stripTags 属性的定义中使用一个 boolean 来禁用此过滤器,同样也可以使用一个 string 作为 strip_tags 的次要参数。
Aduana\Filter::pattern (string $config, string $value)
验证字符串是否符合提供的模式。
$shema = [ "tag" => [ "pattern"=>"/[a-z]+/" ] ];
tag 属性必须符合模式
"/[a-z]+/"
以接受其值为有效。
Aduana\Filter::replace (array $config, string $value)
允许根据提供的搜索替换值中的字符,这个搜索可以是正则表达式或简单字符串。
$shema = [ "tag_1" => [ "replace"=>["/[\.]+/", "_"] ], "tag_2" => [ "replace"=>[".", "_"] ] ];
在 tag_1 和 tag_2 属性中,将搜索点字符(.)并替换为字符 @。
Aduana\Filter::cleanSpace (bool $config, string $value)
清除值中的所有额外空格。
$shema = [ "message" => [ "cleanSpace"=>true ] ];
Aduana\Filter::option (array $config, $value)
检查提供的值是否存在于有效的选项中。
$shema = [ "field_1" => [ "option" => [ 1,2,3,4 ] ] ];
Aduana\Filter::alias (array $config, $value)
如果值存在于相应的索引中,则将其翻译为另一个值。
$shema = [ "field_1" => [ "alias" => [ "a"=>1, "b"=>2, "c"=>3, ] ] ];
属性 field_1 将从具有值 a 变更为 1。
Aduana\Filter::date (字符串 $config, 字符串 $value)
格式化提供的值,这个函数应用了 date 函数。
$shema = [ "hour" => [ "date" => "h:i:s A" ] ];
Aduana\Filter::htmlEncode (布尔 $config, 字符串 $value)
将 htmlentities 函数应用于提供的值。
$shema = [ "html" => [ "htmlEncode" => true ] ];
Aduana\Filter::htmlDecode (布尔 $config, 字符串 $value)
将 html_entity_decode 函数应用于提供的值。
$shema = [ "html" => [ "htmlDecode" => true ] ];
Aduana\Filter::equal ($config, $value)
比较以下表达式 $config === $value
。
$shema = [ "html" => [ "equal" => 10 ] ];
Aduana\Filter::notEqual ($config, $value)
比较以下表达式 $config !== $value
。
$shema = [ "html" => [ "notEqual" => 10 ] ];
Aduana\Filter::numberFormat (数组 $config, 浮点数 $value)
在提供的值上应用 number_format 函数。
$shema = [ "price" => [ "numberFormat" => [ 0 , ".",","] ] ];
Aduana\Filter::range (数组 $config, $value )
使用 range 函数生成一个范围,然后验证提供的值是否在该范围内。
$shema = [ "price" => [ "range" => ["a","b"] ] ];
Aduana\Filter::round (浮点数 $config, 浮点数 $value)
在提供的值上应用 round 函数。
$shema = [ "price" => [ "round" => true ] ];
Aduana\Filter::force (字符串 $config, $value)
强制变量的类型,有效的类型有 integer || int, float || double, string, boolean || bool, unset
$shema = [ "price" => [ "force" => "integer" ] ];
Aduana\Filter::quotemeta (布尔 $config, 字符串 $value)
将 quotemeta 函数应用于提供的值。
$shema = [ "price" => [ "quotemeta" => true ] ];
Aduana\Filter::callback (可调用 $config, $value)
使用参数执行此行 call_user_func( $config, $value)
,为了使过滤器有效,必须符合过滤器返回格式的格式 (object)["valid"=>布尔值, "value"=>任何 ]
。
$shema = [ "price" => [ "callback" => function ($value) { return (object) [ "valid" => true, "value" => $value ]; } ] ];
这个函数必须始终返回一个具有以下参数的对象
(object)["valid"=>布尔值, "value"=>任何 ]