solvire/php-json-schema-generator

一个用PHP编写的JSON Schema生成器。该实现基于当前互联网草案。

dev-master 2013-12-18 04:30 UTC

This package is not auto-updated.

Last update: 2024-09-23 14:54:45 UTC


README

======================

Build Status

包:php-json-schema-generator

PHP JSON Schema生成器

关于JSON Schema

JSON已成为庞大的HTTP工具箱中的基本工具。为了使JSON更加稳定并增加数据结构的持久性,必须实施一些标准。这些标准将有助于以行业可以依赖的方式定义结构。在构建表示数据元素意义的一致方式中,可以找到解析数据和解释数据元素意义的方法。

由于JSON的灵活性质,良好的Schema定义进展缓慢。目前,正在制定一个互联网草案。
(http://tools.ietf.org/html/draft-zyp-json-schema-04)

有关Schema可以为您做什么以及不能做什么的用途/优点/缺点和其他讨论超出了本文档的范围。寻求您的创造力来考虑可能的情况。

关于此工具

每次创建新的REST点或数据对象时,手动编写JSON Schema有点繁琐。因为JSON可以用来表示各种数据对象,所以有一种动态地将一个对象映射到JSON Schema的方法会很有帮助。在这里,为了便于沟通,将PHP数组视为对象。

该工具的目标是提供一个简单的实现,用于从各种对象中生成JSON Schema。一些对象提供了更丰富的Schema生成选项,而另一些则没有。JSON本身在元数据方面非常轻量,因此需要根据对象的架构推断某些意义。

支持的解析器对象

  • JSON字符串

将要支持的解析器

  • JSON/Schema对象
    • 手动加载Schema + 属性
    • 可以通过API更容易地构建
  • 数组
    • 简单的散列
    • API加载数组
    • 将验证数组结构
  • ArrayObject
    • 类似于数组散列
  • Doctrine实体
    • 使用Doctrine 2基础设施
    • 从doctrine元数据生成schema
    • 映射到数据库设置
    • 允许映射覆盖
  • 可扩展对象
    • 加载用户定义的解析器
    • 继承主要功能

安装

简单,假设您使用composer。将以下行添加到您的composer.json中,然后运行composer update。

"require": {
    "solvire/php-json-schema-generator": "dev-master"
}

测试

PHPUnit应包含在composer require-dev配置中。安装将直接在vendor/bin中放置一个可执行文件,因此可以从那里运行。

运行

$ vendor/bin/phpunit