{"id":18794549,"url":"https://github.com/effectra/data-optimizer","last_synced_at":"2025-07-23T02:04:18.599Z","repository":{"id":206630122,"uuid":"717351311","full_name":"effectra/data-optimizer","owner":"effectra","description":"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.","archived":false,"fork":false,"pushed_at":"2023-12-06T21:43:42.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-21T16:13:00.269Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/effectra.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-11T07:47:00.000Z","updated_at":"2023-11-11T07:51:11.000Z","dependencies_parsed_at":"2023-11-25T20:26:03.689Z","dependency_job_id":"3e50fcf7-04b9-4671-b672-31b89ed17789","html_url":"https://github.com/effectra/data-optimizer","commit_stats":null,"previous_names":["effectra/data-optimizer"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/effectra/data-optimizer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/effectra%2Fdata-optimizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/effectra%2Fdata-optimizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/effectra%2Fdata-optimizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/effectra%2Fdata-optimizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/effectra","download_url":"https://codeload.github.com/effectra/data-optimizer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/effectra%2Fdata-optimizer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266603980,"owners_count":23954724,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T21:29:44.804Z","updated_at":"2025-07-23T02:04:18.584Z","avatar_url":"https://github.com/effectra.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Effectra/DataOptimizer PHP Package\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![PHP Version](https://img.shields.io/badge/PHP-%3E%3D7.0-8892BF.svg)](https://www.php.net/)\n\n**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.\n\n## Features\n\n- **DataAttribute**: Manage attributes with methods for setting, getting, and manipulating attribute values.\n\n- **DataCollection**: Manipulate and interact with an array of data using various methods.\n\n- **DataRules**: Define validation rules and attributes for data with methods to set rules for different data types.\n\n- **DataOptimizer**: Optimize and transform data based on customizable rules.\n\n## Installation\n\nTo install the Data Optimizer PHP package, you can use Composer. Run the following command in your project directory:\n\n```bash\ncomposer require effectra/data-optimizer\n```\n\n## Usage\n\n### 1. DataAttribute Class\n\nThe `DataAttribute` class provides methods for managing attributes. Here are some examples of how to use it:\n\n#### Set a Single Attribute:\n\n```php\nuse Effectra\\DataOptimizer\\DataAttribute;\n\n$dataAttribute = new DataAttribute();\n$dataAttribute-\u003esetAttribute('name', 'John Doe');\n```\n\n#### Set Multiple Attributes:\n\n```php\nuse Effectra\\DataOptimizer\\DataAttribute;\n\n$dataAttribute = new DataAttribute();\n$dataAttribute-\u003esetAttributes(['name' =\u003e 'John Doe', 'age' =\u003e 25, 'city' =\u003e 'New York']);\n```\n\n#### Get All Attributes:\n\n```php\nuse Effectra\\DataOptimizer\\DataAttribute;\n\n$dataAttribute = new DataAttribute();\n$attributes = $dataAttribute-\u003egetAttributes();\n```\n\n### 2. DataCollection Class\n\nThe `DataCollection` class provides various methods to manipulate and interact with an array of data. Here are some examples:\n\n#### Create a Collection:\n\n```php\nuse Effectra\\DataOptimizer\\DataCollection;\n\n$dataCollection = new DataCollection([1, 2, 3, 4, 5]);\n```\n\n#### Filter the Collection:\n\n```php\nuse Effectra\\DataOptimizer\\DataCollection;\n\n$dataCollection = new DataCollection([1, 2, 3, 4, 5]);\n$filteredCollection = $dataCollection-\u003efilter(fn($item) =\u003e $item \u003e 2);\n```\n\n#### Map Over the Collection:\n\n```php\nuse Effectra\\DataOptimizer\\DataCollection;\n\n$dataCollection = new DataCollection([1, 2, 3, 4, 5]);\n$mappedCollection = $dataCollection-\u003emap(fn($item) =\u003e $item * 2);\n```\n\n### 3. DataOptimizer Class\n\nThe `DataOptimizer` class is designed for optimizing and transforming data based on defined rules. Here's an example of how to use it:\n\n```php\nuse Effectra\\DataOptimizer\\DataOptimizer;\n\n$data = [\n    ['name' =\u003e 'John Doe', 'age' =\u003e '25', 'city' =\u003e 'New York'],\n    ['name' =\u003e 'Jane Doe', 'age' =\u003e '30', 'city' =\u003e 'San Francisco'],\n    // ... more data\n];\n\n$optimizer = new DataOptimizer($data);\n\n// Define rules using a callback function\n$optimizedData = $optimizer-\u003eoptimize(function ($rules) {\n    $rules-\u003estring('name');\n    $rules-\u003einteger('age');\n    $rules-\u003estring('city');\n});\n\n// $optimizedData now contains the transformed data based on the defined rules\n```\n\n### 4. DataRules Class\n\nThe `DataRules` class is used for defining validation rules and attributes for data. Here's an example:\n\n```php\nuse Effectra\\DataOptimizer\\DataRules;\n\n$rules = new DataRules();\n\n$rules-\u003estring('name');\n$rules-\u003einteger('age');\n$rules-\u003estring('city');\n\n// Access the defined rules\n$definedRules = $rules-\u003egetRules();\n```\n\n### 5. DataValidator Class\n\nThe `DataValidator` class is for validating and processing data. Here's an example:\n\n```php\nuse Effectra\\DataOptimizer\\DataValidator;\nuse Effectra\\Database\\Exception\\DataValidatorException;\n\n$data = [\n    ['name' =\u003e 'John Doe', 'age' =\u003e 25, 'city' =\u003e 'New York'],\n    ['name' =\u003e 'Jane Doe', 'age' =\u003e 30, 'city' =\u003e 'San Francisco'],\n    // ... more data\n];\n\ntry {\n    $validator = new DataValidator($data);\n    $validator-\u003eisArrayOfAssoc();\n    $validator-\u003evalidate();\n} catch (DataValidatorException $e) {\n    // Handle validation errors\n    echo $e-\u003egetMessage();\n}\n```\n\n## Contributing\n\nIf you'd like to contribute to this project, please fork the repository and submit a pull request.\n\n## License\n\nThis Data Optimizer PHP package is open-sourced software licensed under the [MIT license](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feffectra%2Fdata-optimizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feffectra%2Fdata-optimizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feffectra%2Fdata-optimizer/lists"}