relaxedws / merge
此包的最新版本(dev-master)没有可用的许可信息。
用于在标准化数组结构之间执行合并的库。
dev-master
2016-06-20 15:05 UTC
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-09-12 21:50:49 UTC
README
一个用于在关联数组上执行递归3路合并算法的库,用PHP编写。
洞察
此库旨在执行递归3路合并算法。它接受3个参数,这些参数是表示基本数组、本地数组和远程数组的数组。它逐行比较这些实体与其他数组。如果在这3个中只有一个更新了远程或本地数组,最终版本将包含所有未更改的数据以及更新数组(远程或本地)的更新数据。如果在同一行上更新了多个数组,将抛出ConflictException
。
安装
可以通过composer安装此库。
{ "name": "myorg/mylib", "description": "A library depending on 3-way merge", "require": { "relaxedws/merge": "dev-master", } }
示例
安装后,我们可以按以下方式执行合并
<?php namespace testing; require __DIR__ ."/vendor/autoload.php"; use Relaxed\Merge\ThreeWayMerge; $original = [ 'keyA' => [ 0 => [ 'keyB' => 'This is honey like this', 'keyC' => 'This is however, not apple', ], 1 => [ 'keyB' => 'This is milk', 'keyC' => 'This is mango', ], 2 => 'a little sugar', ] ]; $local = [ 'keyA' => [ 0 => [ 'keyB' => 'This is honeybb like ti', 'keyC' => 'This is however, not apple', ], 1 => [ 'keyB' => 'This is milky milky', 'keyC' => 'This is mango', ], 2 => 'a little coffee' ] ]; $remote = [ 'keyA' => [ 0 => [ 'keyB' => 'This is honey like this', 'keyC' => 'This is however, not apple', ], 1 => [ 'keyB' => 'This is milk', 'keyC' => 'This is changed because of remote', ], 2 => 'a little sugar', ] ]; $merge = new ThreeWayMerge(); $updated_revision = $merge->performMerge($original, $local, $remote);
贡献
我们欢迎任何人使用、测试或为此项目做出贡献。我们有广泛的测试覆盖,但众所周知,软件中总是存在错误。请提交问题或拉取请求,并提供您的评论或建议。