Skip to content

inpsyde/filter

Inpsyde Filters Latest Stable Version Project Status Build Status License

This package provides a collection of filters for WordPress.

Contents

Installation

$ composer require --dev [--prefer-dist] inpsyde/filter 

Usage

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

Changing Options

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

Available Filters

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

Create your own Filter

File My\Own\Filter\YourFilter.php

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

}

Usage

// Optional: set "new value" to Filter.
$options = [ 'key' => 'new value' ];

$filter = new YourFilter( $options );
$value = $filter->filter( 'my value' );

Factory

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.

Other Notes

Bugs, technical hints or contribute

Please give us feedback, contribute and file technical bugs on GitHub Repo.

License

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.

Changelog

See commits or read short version.