There are also several predefined transformations, like for example select.
Select is also available directly through DataFrame::select() API.
Transformations are also great way for improving data processing pipelines readability.
UNIFIED DATA PROCESSING FRAMEWORK
composer require flow-php/etl ~0.27.0 Extracts
Read from various data sources.
Transforms
Shape and optimize for your needs.
Loads
Store and secure in one of many available data sinks.
Examples:
Description
▶
▼
composer.json
{
"name": "flow-php/examples",
"description": "Flow PHP - Examples",
"license": "MIT",
"type": "library",
"require": {
"flow-php/etl": "1.x-dev"
},
"minimum-stability": "dev",
"config": {
"allow-plugins": {
"php-http/discovery": false
}
}
}code.php<?php
declare(strict_types=1);
use function Flow\ETL\DSL\{data_frame, from_array, select, to_stream};
require __DIR__ . '/vendor/autoload.php';
data_frame()
->read(
from_array([
['id' => 1, 'first_name' => 'John', 'last_name' => 'Doe'],
['id' => 2, 'first_name' => 'Jane', 'last_name' => 'Smith'],
['id' => 3, 'first_name' => 'Bob', 'last_name' => 'Johnson'],
['id' => 4, 'first_name' => 'Alice', 'last_name' => 'Williams'],
])
)
->with(select('id'))
->collect()
->write(to_stream(__DIR__ . '/output.txt', truncate: false))
->run();
Output
+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
| 4 |
+----+
4 rows