PHPackages                             effectra/data-optimizer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. effectra/data-optimizer

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

effectra/data-optimizer
=======================

The Effectra Data Optimizer package.

v1.1.0(2y ago)0402MITPHP

Since Nov 16Pushed 2y agoCompare

[ Source](https://github.com/effectra/data-optimizer)[ Packagist](https://packagist.org/packages/effectra/data-optimizer)[ RSS](/packages/effectra-data-optimizer/feed)WikiDiscussions main Synced today

READMEChangelog (3)DependenciesVersions (5)Used By (2)

Effectra/DataOptimizer PHP Package
==================================

[](#effectradataoptimizer-php-package)

[![License: MIT](https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667)](https://opensource.org/licenses/MIT)[![PHP Version](https://camo.githubusercontent.com/33e34b87a65db9a9c4330ae1ee79ee3b653853fc7530d25db0dc7672ef01772f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253345253344372e302d3838393242462e737667)](https://www.php.net/)

**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
--------

[](#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
------------

[](#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
-----

[](#usage)

### 1. DataAttribute Class

[](#1-dataattribute-class)

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

#### Set a Single Attribute:

[](#set-a-single-attribute)

```
use Effectra\DataOptimizer\DataAttribute;

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

#### Set Multiple Attributes:

[](#set-multiple-attributes)

```
use Effectra\DataOptimizer\DataAttribute;

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

#### Get All Attributes:

[](#get-all-attributes)

```
use Effectra\DataOptimizer\DataAttribute;

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

### 2. DataCollection Class

[](#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:

[](#create-a-collection)

```
use Effectra\DataOptimizer\DataCollection;

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

#### Filter the Collection:

[](#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:

[](#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

[](#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

[](#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

[](#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
------------

[](#contributing)

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

License
-------

[](#license)

This Data Optimizer PHP package is open-sourced software licensed under the [MIT license](LICENSE).

###  Health Score

23

—

LowBetter than 26% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~3 days

Total

4

Last Release

951d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7e6219ae87e98df8783b2f595b013035dd183c0712afd24045a8acf0a40c3bdf?d=identicon)[effectra](/maintainers/effectra)

---

Top Contributors

[![BMTmohammedtaha](https://avatars.githubusercontent.com/u/95439605?v=4)](https://github.com/BMTmohammedtaha "BMTmohammedtaha (7 commits)")

### Embed Badge

![Health badge](/badges/effectra-data-optimizer/health.svg)

```
[![Health](https://phpackages.com/badges/effectra-data-optimizer/health.svg)](https://phpackages.com/packages/effectra-data-optimizer)
```

###  Alternatives

[doctrine/inflector

PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.

11.3k900.4M875](/packages/doctrine-inflector)[msp/owlcarousel2

1537.5k](/packages/msp-owlcarousel2)[josegus/laravel-flash

1911.4k](/packages/josegus-laravel-flash)[splitbrain/php-ringicon

A indenticon/glyphicon like avatar generator

1614.6k1](/packages/splitbrain-php-ringicon)[hasanmertermis/milvus-php-client

Milvus 2 Grpc Php Client

142.1k](/packages/hasanmertermis-milvus-php-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
