rembon/sync-collection
最新稳定版本:v1.0.1
Composer 安装命令:
composer require rembon/sync-collection
包简介
Sync Between Old and New Laravel Data Collection
README 文档
README
Sebuah Package untuk Sinkronisasi Data Collection.
Features
- Sync Untuk Dua Data Collection (Singular)
- Sync Untuk Dua Data Collection (Dua Dimensi / Asosiatif)
Installation
Installasi Via Composer
composer require rembon/sync-collection
Buka file Config/app.php, Lalu Pastekan syntax berikut pada bagian Autoload Service Providers
'providers' => ServiceProvider::defaultProviders()->merge([ ... Rembon\SyncCollection\SyncCollectionServiceProvider::class, ... ])->toArray(),
How to Use
Pastikan anda mengimport kedua class berikut
use Rembon\SyncCollection\Services\BuildCollection; use Rembon\SyncCollection\SyncCollection;
Build Collection Services
Dipakai untuk manipulasi Collection dengan menggunakan nilai daripada Collection itu sendiri
BuildCollection::set(Collection $collection, Builder $callback)
Sync Singular Data Collection
Dipakai untuk Sinkronisasi Kedua Collection yang singular
SyncCollection::withSingleBetween(Collection $old_collection, Collection $new_collection, array $unique_key_to_protect);
Sync Associative Data Collection
Dipakai untuk Sinkronisasi Kedua Collection yang associative
SyncCollection::withAssociativeBetween(Collection $old_collection, Collection $new_collection, string $unique_key);
Examples
Berikut adalah contoh penggunaan kasusnya.
Build Collection Services
Untuk Build Collection dapat digunakan untuk penggunaan Advance, Berikut adalah Contoh Sederhana untuk proses mapping data Collection
BuildCollection::set($oldData, function ($item) { return $item->map(function ($val, $key) { return $val['quantity'] > 20; }); })
Akan Menghasilkan Hasil Seperti berikut Ini:
[
0 => false,
1 => false,
2 => true
]
Sync Singular Data Collection
Sinkronisasi Untuk Singular Data Collection
// Data Lama Singular $old_data = collect([ 'id' => 1, 'name' => 'item 1', 'quantity' => 10, ]); // Data Baru Singular $new_data = collect([ 'name' => 'New Item 1', 'quantity' => 100, ]); return SyncCollection::withSingleBetween($old_data, $new_data, ['id']);
Akan menghasilkan data seperti berikut ini:
[
"id" => 1,
"name" => "New Item 1",
"quantity" => 100
]
Sync Associative Data Collection
Sinkronisasi Untuk Associative Data Collection
// Data lama $oldData = collect([ ['id' => 1, 'name' => 'Item 1', 'quantity' => 10], ['id' => 2, 'name' => 'Item 2', 'quantity' => 20], ['id' => 3, 'name' => 'Item 3', 'quantity' => 30], ]); // Data baru $newData = collect([ ['id' => 1, 'name' => 'New Item', 'quantity' => 15], ['name' => 'Another New Item', 'quantity' => 25], ['name' => 'Another New Items 2', 'quantity' => 250], ]); return SyncCollection::withAssociativeBetween($oldData, $newData, 'id');
Berikut Adalah hasil daripada Sinkronisasi Associative Data Collection:
[
"currents" => [
[
"id" => 2,
"name" => "Item 2",
"quantity" => 20
],
[
"id" => 3,
"name" => "Item 3",
"quantity" => 30
]
],
"appends" => [
[
"name" => "Another New Item",
"quantity" => 25
],
[
"name" => "Another New Items 2",
"quantity" => 250
]
],
"olds" => [
[
"id" => 1,
"name" => "Item 1",
"quantity" => 10
]
],
"updated" => [
[
"id" => 1
"name" => "New Item"
"quantity" => 15
]
]
]
Notes
currentsdata yang tidak ada perubahan baik sebelum atau sesudah ada request.appendsdata baru yang tidak ada dalam data sebelumnya.oldsdata lama yang sudah tidak terpakai.updateddata baru yang menggantikan data lama yang sudah tidak terpakai.
Credits
References
统计信息
- 总下载量: 24
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-10-27