effectra / data-optimizer
Effectra 数据优化器包。
v1.1.0
2023-11-25 19:32 UTC
README
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 许可证 授权。