byjg/anydataset

AnyDataset is a powerful data source abstraction layer for PHP that provides a simple and consistent interface to access different data sources. With AnyDataset, you can work with various data formats and storage systems using the same programming interface.

Maintainers

👁 byjg

Package info

github.com/byjg/php-anydataset

pkg:composer/byjg/anydataset

Fund package maintenance!

byjg

Statistics

Installs: 144 695

Dependents: 8

Suggesters: 0

Stars: 12

Open Issues: 0

6.0.0 2025-11-25 03:57 UTC

Requires

Requires (Dev)

Suggests

None

Conflicts

None

Replaces

None

MIT 29667a59eb9b451327b3438f857410195374b1fb


README

sidebar_key anydataset
tags
php anydataset databases

AnyDataset

AnyDataset is a powerful data source abstraction layer for PHP that provides a simple and consistent interface to access different data sources. With AnyDataset, you can work with various data formats and storage systems using the same programming interface.

👁 Sponsor
👁 Build Status
👁 Opensource ByJG
👁 GitHub source
👁 GitHub license
👁 GitHub release

It is the core component of the Anydataset project, an agnostic data source abstraction layer for PHP.

Key Features

  • Unified Interface: Access different data sources (databases, arrays, XML, JSON, etc.) using the same interface
  • Flexible Iteration: Multiple ways to iterate through your data
  • Powerful Filtering: Filter your data using a SQL-like syntax
  • Data Transformation: Convert between different formats (JSON, XML, arrays)
  • Validation: Validate your data against rules
  • Extensible: Create your own data source implementations

Quick Start

Installation

composer require "byjg/anydataset"

Basic Usage

<?php
# Create a dataset
$dataset = new \ByJG\AnyDataset\Core\AnyDataset("example");

# Get an iterator
$iterator = $dataset->getIterator();

# Iterate over the results
foreach ($iterator as $row) {
 print_r($row->toArray());
}

Documentation

Core Concepts

Advanced Features

Available Implementations

Data Source Type Implementation Read/Write Repository
Core AnyDataSet R/W Github
Databases DbDriverInterface R/W Github
Arrays ArrayDataSet R Github
Text Files TextFileDataSet R Github
Fixed Width Files FixedTextFileDataSet R Github
XML XmlDataSet R Github
JSON JSONDataSet R Github
SparQL SparQLDataSet R Github
NoSQL Document NoSqlDocumentInterface R/W Github
NoSQL Key/Value KeyValueInterface R/W Github

Example Code Snippets

Filtering Data

<?php
$filter = new \ByJG\AnyDataset\Core\IteratorFilter();
$filter->addRelation("field1", \ByJG\AnyDataset\Core\Enum\Relation::EQUAL, 10);
$iterator = $dataset->getIterator($filter);

Using Formatters

<?php
$formatter = new XmlFormatter($anydataset->getIterator());
$formatter->raw(); // Return a DOM object
$formatter->toText(); // Return the XML as a text
$formatter->saveToFile("/path/to/file.xml"); // Save the XML Text to a file

Running Unit Tests

vendor/bin/phpunit

Dependencies

flowchart TD
 byjg/anydataset --> byjg/serializer
 byjg/anydataset --> byjg/xmlutil
Loading

Open source ByJG