Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ircmaxell/filterus
A simple filtering library for PHP
https://github.com/ircmaxell/filterus
Last synced: about 1 month ago
JSON representation
A simple filtering library for PHP
- Host: GitHub
- URL: https://github.com/ircmaxell/filterus
- Owner: ircmaxell
- Created: 2013-01-15T23:14:06.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2018-11-21T21:48:10.000Z (about 6 years ago)
- Last Synced: 2024-10-14T01:16:26.112Z (about 2 months ago)
- Language: PHP
- Size: 26.4 KB
- Stars: 455
- Watchers: 28
- Forks: 55
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-php - Filterus - A simple PHP filtering library. (Table of Contents / Filtering and Validation)
- awesome-php-cn - Filterus - 一个简单的PHP筛选库. (目录 / 过滤和验证 Filtering and Validation)
- awesome-projects - Filterus - A simple PHP filtering library. (PHP / Filtering and Validation)
- awesome-php - Filterus - A simple PHP filtering library. (Table of Contents / Filtering, Sanitizing and Validation)
README
Filterus - A flexible PHP 5.3 filter package
============================================## Filter Methods:
Each filter class has two primary methods:
* `$filter->filter($var)` - returns a modified version of `$var` filtered to the options. If it cannot be safely modified, a default value will be returned.
* `$filter->validate($var)` - Returns a boolean identifying if the value is valid.## Simple Filters (with options):
* `alnum` - Alpha numeric
* `min` - 0 - Minimum length
* `max` - PHP_INT_MAX - Maximum length
* `default` - `''` - Default return value
* `array` - Array matching
* `min` - 0 - Minimum size
* `maximum` - PHP_INT_MAX - Maximum size
* `keys` - `null` - Filter to run on the keys
* `values` - `null` - Filter to run on the values
* `default` - `array()` - Default return value
* `bool` - Boolean matching
* `default` - `null` - Default return value
* `email` - Matches emails
* `float` - Floating point numbers
* `min` - `null` - Minimum length
* `max` - `null` - Maximum length
* `default` - 0.0 - Default return value
* `int` - Integers numbers
* `min` - `null` - Minimum length
* `max` - `null` - Maximum length
* `default` - 0 - Default return value
* `ip` - Matches IP addresses
* `ipv4` - `true` - Boolean to match IPv4 addresses
* `ipv6` - `true` - Boolean to match IPv6 addresses
* `private` - `true` - Include private addresses?
* `reserved` - `true` - Include reserved addresses?
* `object` - Objects
* `class` - `''` - Required class or interface name
* `default` - `null` - The default value
* `defaultFactory` - `null` - A callback to instantiate a return value
* `raw` - Returns whatever is passed in
* `regex` - Matches strings via a regex
* `min` - 0 - Minimum length
* `max` - PHP_INT_MAX - Maximum length
* `default` - `''` - Default return value
* `regex` - `/.?/` - The regex to run
* `string` - Matches strings
* `min` - 0 - Minimum length
* `max` - PHP_INT_MAX - Maximum length
* `default` - `''` - Default return value
* `url` - Matches URLs
* `path` - `false` - Force a path to be present
* `query` - `false` - Force a query string to be present## Complex Filters
* `Filter::map(array())` - "maps" several filters over key-value pairs. Useful for filtering associative arrays or stdclass objects.
* `Filter::chain($filter1, $filter2...)` - Chains multiple filters together to run on the same value (similar to `AND` joining filters).
* `Filter::pool($filter1, $filter2...)` - Runs the same value through multiple filters using the first valid return (similar to `OR` joining filters)## Usage:
Simple filters can be specified using a comma-separated-value list. So a filter specifying a string with minimum length of 5 could be represented as:
``` php
$filter = Filter::factory('string,min:5');
```Or
``` php
$filter = new Filters\String(array('min' => 5));
```If you pass a filter to `Filter::factory()`, it will be returned unmodified. So you can write functions like:
``` php
function foo($bar, $filter) {
// do something with $bar and set in $baz
return Filter::factory($filter)->filter($baz);
}
```Complex chaining can also be supported. So if you wanted to check if an array with a minimum size of 4, with numeric keys and containing strings of minimum length 5, that could be built like so:
``` php
$filter = Filter::array('min:4', 'int', 'string,min:5');
```If we wanted to validate an associative array, we would use a "map" filter:
``` php
$array = array(
'foo' => 2,
'bar' => 'test',
);$filter = Filter::map(array(
'foo' => 'int',
'bar' => 'string,min:4',
));var_dump($filter->validate($array)); // true
```## Procedural Interface
Filterus also ships with a procedural interface for calling filters.
``` php
\Filterus\filter($var, $filter);
```And
``` php
\Filterus\validate($var, $filter);
```Any filter is supported (both are basically simple wrappers):
``` php
function \Filterus\filter($var, $filter) {
return \Filterus\Filter::factory($filter)->filter($var);
}
```Both are just convenience functions.
Security Vulnerabilities
========================If you have found a security issue, please contact the author directly at [[email protected]](mailto:[email protected]).