kigkonsult / phpincexsdk
PhpIncExSdk 是 rfc8727 的 PHP SDK 实现,是事故对象描述交换格式(rfc7970)的 JSON 绑定
Requires
- php: >=8.0
Requires (Dev)
- ext-xdebug: *
- fakerphp/faker: dev-main
- kigkonsult/fakerlocreltypes: >=v2.0.1
- phpcompatibility/php-compatibility: >=9.3.5
- phpstan/phpstan: >=0.9.3
- phpunit/phpunit: >=6.5.13
- squizlabs/php_codesniffer: >=3.5.5
README
是
用法
关于包类和属性结构,请检查 rfc8727 3.1. 类和元素。
所有类都有一个(无参数)的工厂方法,其中一些类还有带有必填属性的工厂方法,例如 IncidentID::factoryNameId( name, id )
。
所有属性都有 get<Prop>
、set<Prop>
和 is<Prop>Set
方法,对于 array 属性还有 add<Prop>
方法。
为了支持唯一 id 的使用(如 IncidentID::id
、IndicatorID::id
、*::observable-id
、*::uid-ref
等),提供了(静态)方法 <class>::createGUID()
,返回一个 v4 guid。
PhpIncExSdk 类的(入口)方法
属性,具有 get
和 set
方法
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
布尔 默认 falseflags
整数 默认 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 许可下授权。