kigkonsult/phpincexsdk

PhpIncExSdk 是 rfc8727 的 PHP SDK 实现,是事故对象描述交换格式(rfc7970)的 JSON 绑定

资助包维护!
其他

v1.0 2022-06-09 17:48 UTC

This package is auto-updated.

Last update: 2024-09-10 14:11:26 UTC


README

  • rfc8727,事故对象描述交换格式(rfc7970)的 JSON 绑定
  • 支持 json 解析/写入和 IODEFdocument 类实例的 rfc8727 验证。

用法

关于包类和属性结构,请检查 rfc8727 3.1. 类和元素

所有类都有一个(无参数)的工厂方法,其中一些类还有带有必填属性的工厂方法,例如 IncidentID::factoryNameId( name, id )

所有属性都有 get<Prop>set<Prop>is<Prop>Set 方法,对于 array 属性还有 add<Prop> 方法。

为了支持唯一 id 的使用(如 IncidentID::idIndicatorID::id*::observable-id*::uid-ref 等),提供了(静态)方法 <class>::createGUID(),返回一个 v4 guid。

PhpIncExSdk 类的(入口)方法

属性,具有 getset 方法

  • dto IODEFdocument 实例
  • jsonString 字符串

factory( [ jsonString [, dto ]] )

  • 类工厂方法
  • jsonString 字符串
  • dto IODEFdocument 类实例
  • 返回 静态
  • 静态

factoryJsonParse( jsonString )

  • 类工厂方法,将 jsonString 解析为(内部 dto)IODEFdocument 实例
  • (使用 json 默认标志 JSON_OBJECT_AS_ARRAY | JSON_THROW_ON_ERROR)
  • jsonString 字符串
  • 返回 静态
  • 抛出 RuntimeException
  • 静态

factoryJsonWrite( dto [ prettyPrint] )

  • 类工厂方法,将 IODEFdocument 实例写入(内部)jsonString
  • dto IODEFdocument 类实例
  • prettyPrint 布尔 默认 false
  • 返回 静态
  • 抛出 RuntimeException
  • 静态

function jsonParse( [ jsonString [, flags] )

  • 将 jsonString 解析为(内部 dto)IODEFdocument 类实例
  • jsonString 字符串
  • flags 整数 默认 JSON_OBJECT_AS_ARRAY | JSON_THROW_ON_ERROR
  • 返回 静态
  • 抛出 RuntimeException

jsonWrite( [ dto [, prettyPrint [, flags ]]] )

  • 将 IODEFdocument 实例写入(内部)jsonString
  • dto IODEFdocument 类实例
  • prettyPrint 布尔 默认 false
  • flags 整数 默认 JSON_UNESCAPED_SLASHES | JSON_THROW_ON_ERROR
  • 返回 静态
  • 抛出 RuntimeException

validateDto( [ dto [, result ]] )

  • 验证 IODEFdocument 类实例
  • dto IODEFdocument 类实例
  • result 数组 包含在 false 返回时可选缺失的必需部分
  • 返回 布尔 true 成功
  • 抛出 RuntimeException
示例

rfc8727 json 字符串解析为 IODEFdocument 类实例

<?php

use Kigkonsult\PhpIncExSdk\PhpIncExSdk;

// get a rfc8727 json string
$jsonString = ....

$dto = PhpIncExSdk::factoryJsonParse( $jsonString )
    ->getDto();

rfc8727 IODEFdocument 类实例写入 json 字符串

<?php

use Kigkonsult\PhpIncExSdk\PhpIncExSdk;

// create a IODEFdocument class instance 
$dto = ....

$jsonString = PhpIncExSdk::factoryJsonWrite( $dto )
    ->getJsonString();

验证 rfc8727 IODEFdocument 类实例

<?php

use Kigkonsult\PhpIncExSdk\PhpIncExSdk;

// get a rfc8727 json string
$jsonString = ....

// parse the rfc8727 json string
$phpIncExSdk = PhpIncExSdk::factory()
    ->jsonParse( jsonString );

if( ! $phpIncExSdk->validateDto( null, $result = [] )) {
    var_export( $result, true );
    ...
}

支持

使用 github.com/PhpIncExSdk 获取支持。除非赞助,否则非紧急支持问题将在规定时间内解决。

赞助

使用 paypal.me/kigkonsult 进行捐赠将受到赞赏。如有发票,请发电子邮件。

安装

Composer

从命令行

composer require kigkonsult/PhpIncExSdk

在您的 composer.json 中

{
    "require": {
        "kigkonsult/PhpIncExSdk": ">=1.0"
    }
}

许可证

PhpIncExSdk 在 LGPLv3 许可下授权。