Skip to main content

AnyDataset

Sponsor Build Status Opensource ByJG GitHub source GitHub license GitHub release

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.

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 TypeImplementationRead/WriteRepository
CoreAnyDataSetR/WGithub
DatabasesDbDriverInterfaceR/WGithub
ArraysArrayDataSetRGithub
Text FilesTextFileDataSetRGithub
Fixed Width FilesFixedTextFileDataSetRGithub
XMLXmlDataSetRGithub
JSONJSONDataSetRGithub
SparQLSparQLDataSetRGithub
NoSQL DocumentNoSqlDocumentInterfaceR/WGithub
NoSQL Key/ValueKeyValueInterfaceR/WGithub

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


Open source ByJG