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

0.1.0 2018-07-03 08:15 UTC

This package is auto-updated.

Last update: 2024-04-20 22:51:56 UTC


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.