Skip to content

DataOptimizer is a PHP package designed to optimize and transform data based on defined rules. It provides a set of classes and interfaces for managing attributes, working with collections, defining data rules, and optimizing data according to those rules.

License

Notifications You must be signed in to change notification settings

effectra/data-optimizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Effectra/DataOptimizer PHP Package

License: MIT PHP Version

DataOptimizer is a PHP package designed to optimize and transform data based on defined rules. It provides a set of classes and interfaces for managing attributes, working with collections, defining data rules, and optimizing data according to those rules.

Features

  • DataAttribute: Manage attributes with methods for setting, getting, and manipulating attribute values.

  • DataCollection: Manipulate and interact with an array of data using various methods.

  • DataRules: Define validation rules and attributes for data with methods to set rules for different data types.

  • DataOptimizer: Optimize and transform data based on customizable rules.

Installation

To install the Data Optimizer PHP package, you can use Composer. Run the following command in your project directory:

composer require effectra/data-optimizer

Usage

1. DataAttribute Class

The DataAttribute class provides methods for managing attributes. Here are some examples of how to use it:

Set a Single Attribute:

use Effectra\DataOptimizer\DataAttribute;

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

Set Multiple Attributes:

use Effectra\DataOptimizer\DataAttribute;

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

Get All Attributes:

use Effectra\DataOptimizer\DataAttribute;

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

2. DataCollection Class

The DataCollection class provides various methods to manipulate and interact with an array of data. Here are some examples:

Create a Collection:

use Effectra\DataOptimizer\DataCollection;

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

Filter the Collection:

use Effectra\DataOptimizer\DataCollection;

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

Map Over the Collection:

use Effectra\DataOptimizer\DataCollection;

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

3. DataOptimizer Class

The DataOptimizer class is designed for optimizing and transforming data based on defined rules. Here's an example of how to use it:

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 Class

The DataRules class is used for defining validation rules and attributes for data. Here's an example:

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 Class

The DataValidator class is for validating and processing data. Here's an example:

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();
}

Contributing

If you'd like to contribute to this project, please fork the repository and submit a pull request.

License

This Data Optimizer PHP package is open-sourced software licensed under the MIT license.

About

DataOptimizer is a PHP package designed to optimize and transform data based on defined rules. It provides a set of classes and interfaces for managing attributes, working with collections, defining data rules, and optimizing data according to those rules.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages