uppercod / aduana
A small library to clean and filter data safely and easily.
This package is not auto-updated.
Last update: 2024-12-27 22:00:11 UTC
README
Aduana es una pequeña librería para sanear y filtrar datos de forma segura y simple.
$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)
Como notará el ejemplo anterior enseña una instancia de Aduana\Shema, este requiere un array que enseñe las propiedades a filtrar con su correspondiente formato
Aduana\Shema::filter
el método filter permite filtrar y sanear datos en base a la instancia de Aduana\Shema, este siempre retornara 4 propiedades.
- valid : define si sea ha procesado toda la estructura shema de forma correcta, sin valores inválidos.
- dataValid : retorna las propiedades validadas.
- dataInvalid : retorna las propiedades requeridas e inválidas.
- countValid : es un contador de las propiedades válidas
- countInvalid : es un contador de las propiedades invalidas
Se advierte que todas las propiedades inválidas y no requeridas simplemente se ignoran en el resultado de validación.
Aduana\Filter
Esta clase posee todos los filtros que posee por defecto Aduana.
Por defecto todos los métodos encargados de filtrar y sanear son métodos estáticos de 2 argumentos Aduana\Filter::$filter($config, $value)
.
- $config : define la configuración del filtro.
- $value: el valor a filtrar o sanear por el método.
A su vez todo filtro dentro y fuera de aduana debe retornar un objeto con 2 propiedades en el (object)["valid"=>boolean, "value"=>any ]
.
Aduana\Filter::type (string $config, $value)
Filtra un valor en base a su tipo($config) en comparación a su valor($value).
$shema = [ "user_email" => [ "type"=>"email" ] ];
Aduana\Filter::minLength (int $config, string $value)
Requiere un largo mínimo para validar el valor.
$shema = [ "password" => [ "minLength" => 6 ] ];
La propiedad password dentro de $shema, debe ser mayor o igual a 6 caracteres.
Aduana\Filter::maxLength (int $config, string $value)
Requiere un largo máximo para validar el valor.
$shema = [ "password" => [ "maxLength" => 12 ] ];
La propiedad password dentro de $shema, debe ser menor o igual a 12 caracteres.
Aduana\Filter::min (int $config, int $value)
Define un valor mínimo numerico.
$shema = [ "age" => [ "min" => 18 ] ];
La propiedad age dentro de $shema, debe ser mayor o igual a 18.
Aduana\Filter::max (int $config, int $value)
Define un valor mínimo numerico.
$shema = [ "age" => [ "max" => 30 ] ];
La propiedad age dentro de $shema debe ser menor o igual a 30.
Aduana\Filter::stripTags ($config, string $value)
aplica la función strip_tags al valor que apunte el cursor de schema.
$shema = [ "message_1" => [ "stripTags" => true ], "message_2" => [ "stripTags" => "<p>" ] ];
Como notara puede usar un booleano en la definición de la propiedad stripTags para desactivar este filtro, de igual forma puede aplicar un string como parámetro secundario para strip_tags.
Aduana\Filter::pattern (string $config, string $value)
Valida si el string es válido al patrón entregado.
$shema = [ "tag" => [ "pattern"=>"/[a-z]+/" ] ];
La propiedad tag debe cumplir con el patron
"/[a-z]+/"
aceptar su valor como valido.
Aduana\Filter::replace (array $config, string $value)
Permite reemplazar del valor entregado, caracteres a base de una búsqueda, esta búsqueda a su vez puede ser una expresión regular o una simple cadena simple.
$shema = [ "tag_1" => [ "replace"=>["/[\.]+/", "_"] ], "tag_2" => [ "replace"=>[".", "_"] ] ];
En las propiedades tag_1 y tag_2, se buscará el carácter . y se reemplazará por un carácter @
Aduana\Filter::cleanSpace (bool $config, string $value)
Limpia un valor en su totalidad de espacios adicionales.
$shema = [ "message" => [ "cleanSpace"=>true ] ];
Aduana\Filter::option (array $config, $value)
Verifica que el valor entregado exista dentro de las opciones válidas.
$shema = [ "field_1" => [ "option" => [ 1,2,3,4 ] ] ];
Aduana\Filter::alias (array $config, $value)
Traduce el valor entregado a otro solo si este existe en el índice correspondiente.
$shema = [ "field_1" => [ "alias" => [ "a"=>1, "b"=>2, "c"=>3, ] ] ];
La propiedad field_1 pasará de poseer un valor a a 1.
Aduana\Filter::date (string $config, string $value)
Da formato de fecha al valor entregado, esta aplica la función date.
$shema = [ "hour" => [ "date" => "h:i:s A" ] ];
Aduana\Filter::htmlEncode (bool $config, string $value)
Aplica la función htmlentities al valor entregado.
$shema = [ "html" => [ "htmlEncode" => true ] ];
Aduana\Filter::htmlDecode (bool $config, string $value)
Aplica la función html_entity_decode al valor entregado.
$shema = [ "html" => [ "htmlDecode" => true ] ];
Aduana\Filter::equal ($config, $value)
Compara con la siguiente expresión $config === $value
.
$shema = [ "html" => [ "equal" => 10 ] ];
Aduana\Filter::notEqual ($config, $value)
Compara con la siguiente expresión $config !== $value
.
$shema = [ "html" => [ "notEqual" => 10 ] ];
Aduana\Filter::numberFormat (array $config, float $value)
Aplica la función number_format sobre el valor entregado.
$shema = [ "price" => [ "numberFormat" => [ 0 , ".",","] ] ];
Aduana\Filter::range (array $config, $value )
Utiliza la función range para generar un rango y luego verificar si el valor entregado existe dentro de ese rango.
$shema = [ "price" => [ "range" => ["a","b"] ] ];
Aduana\Filter::round (float $config, float $value)
Aplica la función round, sobre el valor entregado.
$shema = [ "price" => [ "round" => true ] ];
Aduana\Filter::force (string $config, $value)
fuerza el tipo de una variable, los tipos válidos son integer || int, float || double, string, boolean || bool, unset
$shema = [ "price" => [ "force" => "integer" ] ];
Aduana\Filter::quotemeta (bool $config, string $value)
Aplica la función quotemeta sobre el valor entregado.
$shema = [ "price" => [ "quotemeta" => true ] ];
Aduana\Filter::callback (callable $config, $value)
Ejecuta esta línea con los parámetros asignados call_user_func( $config, $value)
, Para que sea un filtro válido debe cumplir con el formato de retorno para filtros (object)["valid"=>boolean, "value"=>any ]
.
$shema = [ "price" => [ "callback" => function ($value) { return (object) [ "valid" => true, "value" => $value ]; } ] ];
Esta función siempre debe retornar una objeto con los siguientes parámetros
(object)["valid"=>boolean, "value"=>any ]