stolt / json-merge-patch
JSON Merge Patch(https://tools.ietf.org/html/rfc7396)的实现。
v2.0.1
2022-06-15 11:27 UTC
Requires
- php: >=7.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.19
- phpunit/phpunit: ^8.5
README
这是另一个JSON Merge Patch的实现,用PHP编写。如需PHP 5.3兼容版本,请使用@clue的实现。
通过Composer安装
composer require stolt/json-merge-patch
使用方法
现在您可以通过可用的Composer 自动加载文件 使用JSON Merge Patch for PHP。
应用补丁
<?php require_once 'vendor/autoload.php'; use Rs\Json\Merge\Patch; $targetDocument = json_decode('{"title":"Goodbye!","author":{"givenName":"John","familyName":"Doe"},"tags":["example","sample"],"content":"This will be unchanged"}'); $patchDocument = json_decode('{"title":"Hello!","phoneNumber":"+01-123-456-7890","author":{"familyName":null},"tags":["example"]}'); $patchedDocument = (new Patch())->apply( $targetDocument, $patchDocument ); // '{"title":"Hello!","author":{"givenName":"John"},"tags":["example"],"content":"This will be unchanged","phoneNumber":"+01-123-456-7890"}'
生成补丁文档
<?php require_once 'vendor/autoload.php'; use Rs\Json\Merge\Patch; $sourceDocument = json_decode('{"a":"b","b":"c"}'); $targetDocument = json_decode('{"b":"c"}'); $generatedPatchDocument = (new Patch())->generate( $sourceDocument, $targetDocument ); // '{"a":null}'
合并补丁文档
<?php require_once 'vendor/autoload.php'; use Rs\Json\Merge\Patch; $patchDocument1 = json_decode('{"a":"b"}'); $patchDocument2 = json_decode('{"b":"c"}'); $mergedPatchDocument = (new Patch())->merge( $patchDocument1, $patchDocument2 ); // '{"a":"b","b":"c"}'
运行测试
composer test
许可证
本库采用MIT许可证。有关更多详细信息,请参阅LICENSE。
变更日志
有关更多详细信息,请参阅CHANGELOG。
贡献
有关更多详细信息,请参阅CONTRIBUTING。