Skip to content

A silly Filter thing inspired by html-pipeline (some rubygem)

Notifications You must be signed in to change notification settings

Vandpibe/Filtering

Repository files navigation

Vandpibe Filtering

On the GitHub blog they announce a RubyGem called html-pipeline.

Which is a more or less simple way to have a collection of filters applied on a string or dom document.

The goal is to port this behaviour in PHP. It is not completely possible because Ruby have class identifiers which they call new on when appleing the filters (a form of lazy loading).

Limitations

  • Currently a FilterInterface only takes a string value and must return a string aswell.
  • ChainFilter must get all filters in the constructor as instantiated objects. This could be fixed by adding a wrapper that knows how to get a Filter by its name.
  • The is only a single Filter.

Usage

Usage is simple.

<?php

use Vandpibe\Filtering\FilterChain;
use Vandpibe\Filtering\Filter\AutolinkFilter;

$chain = new FilterChain(array(
    new AutolinkFilter,
));

$text = $chain->filter('<p>"http://github.com"</p>', array());

// <p>"<a href="http://github.com">http://github.com</a>"</p>
print $text;

LazyLoading Filters

A FilterChain supports a resolve method that will take the filter input and try and match it to a real FilterInterface implementation.

There is currently only a implementation for Symfony's DependencyInjection component.

<?php

use Vandpibe\Filtering\LazyFilterChain;

$chain = new LazyFilterChain(array(
    'some.service.id',
    'some.other.service.id',
));

$chain->setContainer($container);

$text = $chain->filter('mytext', array('context' => true));

Dependencies

Build Status

About

A silly Filter thing inspired by html-pipeline (some rubygem)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages