seferov / request-validator-bundle
Validates request params with Controller annotations
Installs: 51 189
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 4
Forks: 3
Open Issues: 1
Type:symfony-bundle
Requires
- php: ~7.0
- sensio/framework-extra-bundle: ^3.0 || ^5.1
- symfony/framework-bundle: ^4.0 || ^5.0
Requires (Dev)
- phpunit/phpunit: ^5.6 || ^6.5
- symfony/symfony: ^4.0 || ^5.0
README
Usage
<?php namespace AppBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\Validator\Constraints as Assert; use Seferov\RequestValidatorBundle\Validator\RequestValidator; use Seferov\RequestValidatorBundle\Annotation\Validator; class AcmeController extends Controller { /** * @Validator(name="page", default="1", constraints={@Assert\Type(type="numeric"), @Assert\Range(min=1)}) * @Validator(name="limit", default="25", constraints={@Assert\Type(type="numeric"), @Assert\Range(min=10, max=100)}) * @Validator(name="order", default="desc", constraints={@Assert\Choice(choices={"asc", "desc"}, message="error.wrong_order_choice")}) * @Validator(name="name", constraints={@Assert\NotBlank()}) * @Validator(name="email", required=true, constraints={@Assert\Email()}) * * @param RequestValidator $requestValidator */ public function someAction(RequestValidator $requestValidator) { // You can get errors if there is any /** @var \Symfony\Component\Validator\ConstraintViolationList $errors */ $errors = $requestValidator->getErrors(); // You can get the request value with `get($path)` method $email = $requestValidator->get('email'); // ... } }
Installation
Step 1: Download the Bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require seferov/request-validator-bundle
This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.
Step 2: Enable the Bundle
Then, enable the bundle by adding it to the list of registered bundles
in the app/AppKernel.php
file of your project:
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Seferov\RequestValidatorBundle\SeferovRequestValidatorBundle(), ); // ... } // ... }