blesta/items

一个用于存储任意数据的物品库。

1.1.1 2024-07-01 14:13 UTC

This package is auto-updated.

Last update: 2024-08-31 14:33:25 UTC


README

一个用于创建存储任意数据的物品集合的库。

安装

通过Composer安装

composer require blesta/items:~1.0

基本用法

物品

物品存储通用数据,通常是用户定义的数组或对象数据。

$item = new Item();

设置物品的字段

$fields = [
    'key' => 'item1',
    'value' => 'Item'
];
$item->setFields($fields);
$item->setField('custom', 'ABC123');
$item->removeField('value');
print_r($item->getFields());

输出是字段的标准化类对象

stdClass Object (
    [key] => item1
    [custom] => ABC123
)

物品映射(ItemMap)

物品映射将一个物品的值与另一个物品的键组合。结果是包含只有映射键有物品值的新物品。

// Create the item
$fields = [
    'domain' => 'domain.com',
    'amount' => 100.0000,
    'override_amount' => 150.0000,
    'custom' => 'ABC123'
];
$item = new Item();
$item->setFields($fields);

// Create an item to use for field mapping
$mapFields = [
    'value' => 'domain',
    'price' => ['override_amount', 'amount']
    'type' => 'generic'
];
$mapItem = new Item();
$mapItem->setFields($mapFields);

$map = new ItemMap();
$newItem = $map->combine($item, $mapItem);
print_r($newItem->getFields());

设置在新物品上的字段仅是那些在执行映射后存在于 $item 中的 $mapItem 的键。

stdClass Object (
    [value] => domain.com
    [price] => 150.0000
)

物品集合(ItemCollection)

$collection = new ItemCollection();

$item1 = new Item();
$item2 = new Item();
$collection->append($item1)->append($item2);
$total = $collection->count(); // 2

$collection->remove($item1);
$total = $collection->count(); // 1

foreach ($collection as $item) {
    print_r($item->getFields()); // stdClass object of fields
}