Giter Site home page Giter Site logo

aduanaphp's Introduction

Aduana

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).

  1. $config : define la configuración del filtro.
  2. $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).

type detail
email, mail Define si es un email
integer, int Define si es un número entero
boolean, bool Define si es un booleano
float, double Define si es un número flotante
number, numberic Define si es un número
null Define si es nulo
infinite Define si es un número infinito
finite Define si el número es finito
json Define si es un json
url Define si es una url
date Define si es un fecha
default Si no posee una definición de tipo usara la función gettype para verificar el tipo
$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 ]

aduanaphp's People

Contributors

uppercod avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.