This package provides a collection of filters for WordPress.
$ composer require --dev [--prefer-dist] inpsyde/filter
Each filter filters a value with a given configuration.
$filter = new Inpsyde\Filter\DateTime();
$value = $filter->filter( '21.06.1987' ); // converts to: 1987-06-21
Some filters are having additional options which can be overwritten in constructor.
$options = [
'format' => 'd.m.Y'
];
$filter = new Inpsyde\Filter\DateTime( $options );
$value = $filter->filter( '1987-06-21' ); // 21.06.1987
Following basic filters are available:
ArrayValue
DateTime
In addition, there are filters which are wrappers for well known WordPress-functions:
WordPress\Absint
WordPress\AutoP
WordPress\EscHtml
WordPress\EscUrlRaw
WordPress\NormalizeWhitespace
WordPress\RemoveAccents
WordPress\SanitizeFileName
WordPress\SanitizeKey
WordPress\SanitizePostField
WordPress\SanitizeTextField
WordPress\SanitizeTitle
WordPress\SanitizeTitleWithDashes
WordPress\SanitizeUser
WordPress\SpecialChars
WordPress\StripTags
WordPress\Unslash
namespace My\Own\Filter;
use Inpsyde\Filter\AbstractFilter;
class YourFilter extends AbstractFilter {
/**
* Optional: set some options, which can be overwritten by constructor.
* @var array
*/
protected $options = [
'key' => 'value'
];
/**
* {@inheritdoc}
*/
public function filter( $value ) {
// do something
return $value;
}
}
// Optional: set "new value" to Filter.
$options = [ 'key' => 'new value' ];
$filter = new YourFilter( $options );
$value = $filter->filter( 'my value' );
The library comes with a FilterFactory
which allows you to create instances of new filters.
$factory = new \Inpsyde\Filter\FilterFactory();
$filter = $factory->create( 'DateTime' ); // returns instance of \Inpsyde\Filter\DateTime
The factory is also able to create instances of external classes, if they implement the \Inpsyde\Filter\FilterInterface
:
$factory = new \Inpsyde\Filter\FilterFactory();
$filter = $factory->create( My\Own\Filter\YourFilter::class ); // Creates an instance of your own filter.
Please give us feedback, contribute and file technical bugs on GitHub Repo.
This repository is a free software, and is released under the terms of the GNU General Public License version 2 or (at your option) any later version. See LICENSE for complete license.
See commits or read short version.