hrombach / json-validation-bundle
Very limited Bundle based on JustinRainbow's Json Validation lib
Installs: 2 918
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: ~7.2
- justinrainbow/json-schema: ~5.2
- symfony/framework-bundle: ~4.1
README
This was made in one evening to make it easier for me to share this code between projects I work on.
Pretty much all the actual work is done by justinrainbow's json-schema library.
I put it up publicly because I couldn't be bothered to pay for packagist or set up a custom repository every time. If you want to use it go ahead, just don't rely on it to work perfectly in every situation.
Installation
Applications that use Symfony Flex
Open a command console, enter your project directory and execute:
$ composer require hrombach/json-validation-bundle
Applications that don't use Symfony Flex
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 hrombach/json-validation-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 Hero\Bundle\JsonValidation\HeroJsonValidationBundle(), ); // ... } // ... }
Basic usage
Inject the validator into your controller
/** * ExampleController constructor. * * @param Validator $validator */ public function __construct(Validator $validator) { $this->validator = $validator; }
To be the most lazy (like me) just use
try { $this->validator->validateRequest($request); catch (JsonValidationFailedException $e) { foreach ($e->getValidationErrors() as $error) { // whatever you do with those ¯\_(ツ)_/¯ } }
In the beginning of your controller action. The validator will try to find a file named after the _route
of your request, appended with .schema.json
in %kernel.project_dir%/public/schema
.