This library provides a service that can be used to filter object values based on annotations
Use composer to add DMS\Filter to your app
composer require dms/dms-filter
Your Entity:
<?php
namespace App\Entity;
//Import Annotations
use DMS\Filter\Rules as Filter;
class User
{
    /**
    * @Filter\StripTags()
    * @Filter\Trim()
    * @Filter\StripNewlines()
    *
    * @var string
    */
    public $name;
    /**
    * @Filter\StripTags()
    * @Filter\Trim()
    * @Filter\StripNewlines()
    *
    * @var string
    */
    public $email;
}
?>Filtering:
<?php
    //Get Doctrine Reader
    $reader = new Annotations\AnnotationReader();
    $reader->setEnableParsePhpImports(true);
    //Load AnnotationLoader
    $loader = new Mapping\Loader\AnnotationLoader($reader);
    $this->loader = $loader;
    //Get a MetadataFactory
    $metadataFactory = new Mapping\ClassMetadataFactory($loader);
    //Get a Filter
    $filter = new DMS\Filter\Filter($metadataFactory);
    //Get your Entity
    $user = new App\Entity\User();
    $user->name = "My <b>name</b>";
    $user->email = " [email protected]";
    //Filter you entity
    $filter->filter($user);
    echo $user->name; //"My name"
    echo $user->email; //"[email protected]"
?>Full example: https://gist.github.com/1098352
This package relies on these external libraries:
- Doctrine Annotations
Feel free to send pull requests, just follow these guides:
- Fork
- Code
- Test
- Just create FilterTestCase and run phpunit
 
- Just create FilterTestCase and run 
- Submit PR
This library is inspired by the Symfony 2 Validator component and is meant to work alongside it.
Symfony 2 Validator: https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Validator





