Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/rdohms/dms-filter-bundle

Provides a FilterService for Symfony to allow users to implement input filtering in entities using Annotations
https://github.com/rdohms/dms-filter-bundle

filtering hacktoberfest symfony symfony-bundle

Last synced: 2 months ago
JSON representation

Provides a FilterService for Symfony to allow users to implement input filtering in entities using Annotations

Lists

README

        

# DMS Filter Bundle

This bundle makes DMS/Filter available for use in your application for input filtering.

Current Status: [![Build Status](https://travis-ci.org/rdohms/dms-filter-bundle.png?branch=2.dev)](https://travis-ci.org/rdohms/dms-filter-bundle) [![Dependency Status](https://www.versioneye.com/php/dms:dms-filter-bundle/1.1.1/badge.png)](https://www.versioneye.com/php/dms:dms-filter-bundle/1.1.1)

## Install

### 1. Import libraries

Option A) Use Composer.

composer require dms/dms-filter-bundle

### 2. Enable Bundle

Add this to your `AppKernel.php`

new DMS\Bundle\FilterBundle\DMSFilterBundle(),

### 3. Configure

This bundle can now automatically filter your forms if it finds a annotated entity attached.

This is the default behaviour, if you want to disable it add this to your `config.yml`

dms_filter:
auto_filter_forms: false

## Usage

### Adding Annotations

To add annotations to your entity, import the namespace and add them like this:

```php
name = "My name";
$entity->email = " [email protected]";

$oldEntity = clone $entity;

$filterService = $this->get('dms.filter');
$filterService->filterEntity($entity);

return array('entity' => $entity, "old" => $oldEntity);
}
```

### Auto filtering

This bundle can now automatically filter your forms if it finds a annotated entity attached. If enabled entities will be filtered before they are validated.

### Cascade Filtering

This Bundle automatically cascades filtering into all embedded forms that return valid entities. If you wish child
entities to be ignored, set the `cascade_filter` option on the form to false.

```php
class TaskType extends AbstractType
{
// ...

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'cascade_filter' => false,
));
}

// ...
}
```

## Service based method

If you need to filter content using a method in a service, you do not need to create your own Annotations, you can
simply use the Service Filter, designed specifically for Symfony Services.

See below the usage example of the annotation, it takes 2 options: `service` and `method`.

```php