effectra/data-optimizer

Effectra 数据优化器包。

v1.1.0 2023-11-25 19:32 UTC

This package is auto-updated.

Last update: 2024-09-06 23:06:52 UTC


README

License: MIT PHP Version

DataOptimizer 是一个 PHP 包,旨在根据定义的规则优化和转换数据。它提供了一系列类和接口来管理属性、处理集合、定义数据规则以及根据这些规则优化数据。

特性

  • DataAttribute:通过设置、获取和操作属性值的方法来管理属性。

  • DataCollection:使用各种方法操作和交互数据数组。

  • DataRules:定义数据验证规则和属性,并为不同数据类型设置规则的方法。

  • DataOptimizer:根据可自定义的规则优化和转换数据。

安装

要安装 Data Optimizer PHP 包,您可以使用 Composer。在您的项目目录中运行以下命令

composer require effectra/data-optimizer

用法

1. DataAttribute 类

DataAttribute 类提供了管理属性的方法。以下是一些使用示例

设置单个属性

use Effectra\DataOptimizer\DataAttribute;

$dataAttribute = new DataAttribute();
$dataAttribute->setAttribute('name', 'John Doe');

设置多个属性

use Effectra\DataOptimizer\DataAttribute;

$dataAttribute = new DataAttribute();
$dataAttribute->setAttributes(['name' => 'John Doe', 'age' => 25, 'city' => 'New York']);

获取所有属性

use Effectra\DataOptimizer\DataAttribute;

$dataAttribute = new DataAttribute();
$attributes = $dataAttribute->getAttributes();

2. DataCollection 类

DataCollection 类提供了各种方法来操作和交互数据数组。以下是一些示例

创建集合

use Effectra\DataOptimizer\DataCollection;

$dataCollection = new DataCollection([1, 2, 3, 4, 5]);

过滤集合

use Effectra\DataOptimizer\DataCollection;

$dataCollection = new DataCollection([1, 2, 3, 4, 5]);
$filteredCollection = $dataCollection->filter(fn($item) => $item > 2);

映射集合

use Effectra\DataOptimizer\DataCollection;

$dataCollection = new DataCollection([1, 2, 3, 4, 5]);
$mappedCollection = $dataCollection->map(fn($item) => $item * 2);

3. DataOptimizer 类

DataOptimizer 类旨在根据定义的规则优化和转换数据。以下是如何使用它的示例

use Effectra\DataOptimizer\DataOptimizer;

$data = [
    ['name' => 'John Doe', 'age' => '25', 'city' => 'New York'],
    ['name' => 'Jane Doe', 'age' => '30', 'city' => 'San Francisco'],
    // ... more data
];

$optimizer = new DataOptimizer($data);

// Define rules using a callback function
$optimizedData = $optimizer->optimize(function ($rules) {
    $rules->string('name');
    $rules->integer('age');
    $rules->string('city');
});

// $optimizedData now contains the transformed data based on the defined rules

4. DataRules 类

DataRules 类用于定义数据验证规则和属性。以下是一个示例

use Effectra\DataOptimizer\DataRules;

$rules = new DataRules();

$rules->string('name');
$rules->integer('age');
$rules->string('city');

// Access the defined rules
$definedRules = $rules->getRules();

5. DataValidator 类

DataValidator 类用于验证和处理数据。以下是一个示例

use Effectra\DataOptimizer\DataValidator;
use Effectra\Database\Exception\DataValidatorException;

$data = [
    ['name' => 'John Doe', 'age' => 25, 'city' => 'New York'],
    ['name' => 'Jane Doe', 'age' => 30, 'city' => 'San Francisco'],
    // ... more data
];

try {
    $validator = new DataValidator($data);
    $validator->isArrayOfAssoc();
    $validator->validate();
} catch (DataValidatorException $e) {
    // Handle validation errors
    echo $e->getMessage();
}

贡献

如果您想为此项目做出贡献,请将其仓库进行分支并提交一个拉取请求。

许可

此 Data Optimizer PHP 包是开源软件,受 MIT 许可证 授权。