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 Attributes
use DMS\Filter\Rules as Filter;
class User
{
#[Filter\StripTags]
#[Filter\Trim]
#[Filter\StripNewlines]
public string $name;
#[Filter\StripTags]
#[Filter\Trim]
#[Filter\StripNewlines]
public string $email;
}
?>
Filtering:
<?php
//Load AttributeLoader
$loader = new Mapping\Loader\AttributeLoader();
//Get a MetadataFactory
$metadataFactory = new Mapping\ClassMetadataFactory($loader);
//Get a FilterLoader
$filterLoader = new \DMS\Filter\Filters\Loader\FilterLoader();
//Get a Filter
$filter = new DMS\Filter\Filter($metadataFactory, $filterLoader);
//Get your Entity
$user = new App\Entity\User();
$user->name = "My <b>name</b>";
$user->email = " email@mail.com";
//Filter you entity
$filter->filterEntity($user);
echo $user->name; //"My name"
echo $user->email; //"email@mail.com"
?>
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 Validator: https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Validator