PHPackages                             uppercod/aduana - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. uppercod/aduana

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

uppercod/aduana
===============

A small library to clean and filter data safely and easily.

0.0.3(8y ago)015Apache-2.0PHP

Since Apr 11Pushed 8y agoCompare

[ Source](https://github.com/UpperCod/AduanaPhp)[ Packagist](https://packagist.org/packages/uppercod/aduana)[ RSS](/packages/uppercod-aduana/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (4)Used By (0)

Aduana
------

[](#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

[](#aduanashemafilter)

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

[](#aduanafilter)

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)

[](#aduanafiltertype-string-config-value)

Filtra un valor en base a su tipo($config) en comparación a su valor($value).

typedetail**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)

[](#aduanafilterminlength-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)

[](#aduanafiltermaxlength-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)

[](#aduanafiltermin-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)

[](#aduanafiltermax-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)

[](#aduanafilterstriptags-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" => ""
   ]
];
```

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

[](#aduanafilterpattern-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)

[](#aduanafilterreplace-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)

[](#aduanafiltercleanspace-bool-config-string-value)

Limpia un valor en su totalidad de espacios adicionales.

```
$shema = [
   "message" => [
       "cleanSpace"=>true
   ]
];
```

### Aduana\\Filter::option (array $config, $value)

[](#aduanafilteroption-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)

[](#aduanafilteralias-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)

[](#aduanafilterdate-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)

[](#aduanafilterhtmlencode-bool-config-string-value)

Aplica la función **htmlentities** al valor entregado.

```
$shema = [
   "html" => [
       "htmlEncode" => true
   ]
];
```

### Aduana\\Filter::htmlDecode (bool $config, string $value)

[](#aduanafilterhtmldecode-bool-config-string-value)

Aplica la función **html\_entity\_decode** al valor entregado.

```
$shema = [
   "html" => [
       "htmlDecode" => true
   ]
];
```

### Aduana\\Filter::equal ($config, $value)

[](#aduanafilterequal-config-value)

Compara con la siguiente expresión `$config === $value`.

```
$shema = [
   "html" => [
       "equal" => 10
   ]
];
```

### Aduana\\Filter::notEqual ($config, $value)

[](#aduanafilternotequal-config-value)

Compara con la siguiente expresión `$config !== $value`.

```
$shema = [
   "html" => [
       "notEqual" => 10
   ]
];
```

### Aduana\\Filter::numberFormat (array $config, float $value)

[](#aduanafilternumberformat-array-config-float-value)

Aplica la función **number\_format** sobre el valor entregado.

```
$shema = [
   "price" => [
       "numberFormat" => [ 0 , ".",","]
   ]
];
```

### Aduana\\Filter::range (array $config, $value )

[](#aduanafilterrange-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)

[](#aduanafilterround-float-config-float-value)

Aplica la función **round**, sobre el valor entregado.

```
$shema = [
   "price" => [
       "round" => true
   ]
];
```

### Aduana\\Filter::force (string $config, $value)

[](#aduanafilterforce-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)

[](#aduanafilterquotemeta-bool-config-string-value)

Aplica la función **quotemeta** sobre el valor entregado.

```
$shema = [
   "price" => [
       "quotemeta" => true
   ]
];
```

### Aduana\\Filter::callback (callable $config, $value)

[](#aduanafiltercallback-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 ]`

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

2955d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/606759ffd572f7a6886253e49c6d372abf599c445ee4a0eefa538dd448a32d05?d=identicon)[uppchile](/maintainers/uppchile)

---

Top Contributors

[![MatiasWorker](https://avatars.githubusercontent.com/u/107888546?v=4)](https://github.com/MatiasWorker "MatiasWorker (3 commits)")

### Embed Badge

![Health badge](/badges/uppercod-aduana/health.svg)

```
[![Health](https://phpackages.com/badges/uppercod-aduana/health.svg)](https://phpackages.com/packages/uppercod-aduana)
```

###  Alternatives

[webmozart/assert

Assertions to validate method input/output with nice error messages.

7.6k894.0M1.2k](/packages/webmozart-assert)[bensampo/laravel-enum

Simple, extensible and powerful enumeration implementation for Laravel.

2.0k15.9M104](/packages/bensampo-laravel-enum)[swaggest/json-schema

High definition PHP structures with JSON-schema based validation

48612.5M73](/packages/swaggest-json-schema)[stevebauman/purify

An HTML Purifier / Sanitizer for Laravel

5325.6M19](/packages/stevebauman-purify)[ashallendesign/laravel-config-validator

A package for validating your Laravel app's config.

217905.3k5](/packages/ashallendesign-laravel-config-validator)[crazybooot/base64-validation

Laravel validators for base64 encoded files

1341.9M8](/packages/crazybooot-base64-validation)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
