hrombach/json-validation-bundle

基于JustinRainbow的Json Validation库的非常有限的Bundle

0.1.0 2018-07-03 08:15 UTC

This package is auto-updated.

Last update: 2024-09-20 23:49:09 UTC


README

这只是一晚上编写的,为了让我更容易地在我的项目中共享这段代码。

几乎所有的工作都是由justinrainbow的json-schema库完成的。

我将其公开,因为我懒得每次都为Packagist付费或设置自定义仓库。如果你想使用它,请随意,但不要依赖它在所有情况下都能完美工作。

安装

使用Symfony Flex的应用程序

打开命令行控制台,进入您的项目目录,并执行以下命令

$ composer require hrombach/json-validation-bundle

不使用Symfony Flex的应用程序

步骤 1:下载Bundle

打开命令行控制台,进入您的项目目录,并执行以下命令以下载此Bundle的最新稳定版本

$ composer require hrombach/json-validation-bundle

此命令要求您全局安装Composer,具体请参阅Composer文档中的安装章节

步骤 2:启用Bundle

然后,通过将其添加到项目app/AppKernel.php文件中注册的Bundle列表中来启用Bundle

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...

            new Hero\Bundle\JsonValidation\HeroJsonValidationBundle(),
        );

        // ...
    }

    // ...
}

基本使用

将验证器注入到您的控制器中

/**
 * ExampleController constructor.
 *
 * @param Validator    $validator
 */
public function __construct(Validator $validator)
{
    $this->validator = $validator;
}

要尽可能懒散(就像我一样),只需使用

try {
    $this->validator->validateRequest($request);
catch (JsonValidationFailedException $e) {
    foreach ($e->getValidationErrors() as $error) {
        // whatever you do with those ¯\_(ツ)_/¯
    }
}

在控制器操作的开头。验证器将尝试在%kernel.project_dir%/public/schema中找到以请求的_route命名的文件,并附加.schema.json