All Projects → rdohms → Dms Filter Bundle

rdohms / Dms Filter Bundle

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

Projects that are alternatives of or similar to Dms Filter Bundle

Core
The server component of API Platform: hypermedia and GraphQL APIs in minutes
Stars: ✭ 2,004 (+2608.11%)
Mutual labels:  hacktoberfest, symfony, symfony-bundle
Fosoauthserverbundle
A server side OAuth2 Bundle for Symfony
Stars: ✭ 1,068 (+1343.24%)
Mutual labels:  hacktoberfest, symfony, symfony-bundle
Symfony
The Symfony PHP framework
Stars: ✭ 26,220 (+35332.43%)
Mutual labels:  hacktoberfest, symfony, symfony-bundle
Pugxautocompleterbundle
Add an autocomplete field to your Symfony forms
Stars: ✭ 83 (+12.16%)
Mutual labels:  hacktoberfest, symfony, symfony-bundle
Doctrinebundle
Symfony Bundle for Doctrine ORM and DBAL
Stars: ✭ 4,225 (+5609.46%)
Mutual labels:  hacktoberfest, symfony, symfony-bundle
Sentry Symfony
The official Symfony SDK for Sentry (sentry.io)
Stars: ✭ 515 (+595.95%)
Mutual labels:  hacktoberfest, symfony, symfony-bundle
Sylius
Open Source eCommerce Platform on Symfony
Stars: ✭ 6,598 (+8816.22%)
Mutual labels:  hacktoberfest, symfony, symfony-bundle
Seo Bundle
A SEO Solution for duplicate contents, page titles, etc.
Stars: ✭ 45 (-39.19%)
Mutual labels:  symfony, symfony-bundle
Beelabrecaptcha2bundle
💻 Symfony bundle for Google Recaptcha2
Stars: ✭ 47 (-36.49%)
Mutual labels:  symfony, symfony-bundle
Knpsnappybundle
Easily create PDF and images in Symfony by converting html using webkit
Stars: ✭ 1,038 (+1302.7%)
Mutual labels:  symfony, symfony-bundle
Pugxgeneratorbundle
An enhancement of SensioGeneratorBundle
Stars: ✭ 58 (-21.62%)
Mutual labels:  symfony, symfony-bundle
Google Analytics Api Symfony
Google Analytics API Symfony Bundle
Stars: ✭ 43 (-41.89%)
Mutual labels:  symfony, symfony-bundle
Lexikpayboxbundle
LexikPayboxBundle eases the implementation of the Paybox payment system
Stars: ✭ 42 (-43.24%)
Mutual labels:  symfony, symfony-bundle
Sncredisbundle
A Redis bundle for Symfony supporting Predis and PhpRedis
Stars: ✭ 980 (+1224.32%)
Mutual labels:  symfony, symfony-bundle
Social Post Bundle
Symfony bundle to publish status updates on Facebook, LinkedIn and Twitter.
Stars: ✭ 35 (-52.7%)
Mutual labels:  symfony, symfony-bundle
Liipurlautoconverterbundle
[DEPRECATED] This bundle will add a Twig Extension for templates with a new filter for automatically converting urls and emails in a string to html links
Stars: ✭ 53 (-28.38%)
Mutual labels:  symfony, symfony-bundle
Lexikcurrencybundle
This Symfony2 bundle provide a service and a Twig extension to convert and display currencies.
Stars: ✭ 59 (-20.27%)
Mutual labels:  symfony, symfony-bundle
Fmbbcodebundle
🔠 BBCode bundle for Symfony projects
Stars: ✭ 56 (-24.32%)
Mutual labels:  symfony, symfony-bundle
Minkbundle
Mink library integration bundle for Symfony2
Stars: ✭ 64 (-13.51%)
Mutual labels:  symfony, symfony-bundle
Featureflagsbundle
Symfony2 Bundle to implement Feature Flags to your Application
Stars: ✭ 63 (-14.86%)
Mutual labels:  symfony, symfony-bundle

DMS Filter Bundle

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

Current Status: Build Status Dependency Status

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

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;

}

Manual Filtering

Use the dms.filter service along with annotations in the Entity to filter data.

public function indexAction()
{

    $entity = new \Acme\DemoBundle\Entity\SampleEntity();
    $entity->name = "My <b>name</b>";
    $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.

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

namespace App\Entity;

//Import Annotations
use DMS\Filter\Rules as Filter;

//Import Symfony Rules
use DMS\Bundle\FilterBundle\Rule as SfFilter;

class User
{
    /**
    * @Filter\StripTags()
    * @SfFilter\Service(service="dms.sample", method="filterIt")
    *
    * @var string
    */
    public $name;
}

The filterIt method can have any name, but it must take one paramter (the value) and return the filtered value.

Compatibility

This is compatible with Symfony 2.8 and above, including 3.0. For Symfony 2.3+ support use "^2.0".

Contributing

Given you have composer, cloned the project repository and have a terminal open on it:

composer.phar install --prefer-source --dev
vendor/bin/phpunit

The tests should be passing and you are ready to make contributions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].