hrombach / json-validation-bundle
基于JustinRainbow的Json Validation库的非常有限的Bundle
0.1.0
2018-07-03 08:15 UTC
Requires
- php: ~7.2
- justinrainbow/json-schema: ~5.2
- symfony/framework-bundle: ~4.1
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
。