Define explicit column types for data sources that lack strict schema support (like CSV, XML, or JSON). This ensures consistent type handling and avoids issues when early rows contain null or empty values.
UNIFIED DATA PROCESSING FRAMEWORK
composer require flow-php/etl ~0.32.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
Documentation
Code
<?php
declare(strict_types=1);
use function Flow\ETL\DSL\{bool_schema, data_frame, from_array, int_schema, schema, str_schema, to_output};
use Flow\ETL\Loader\StreamLoader\Output;
use Flow\ETL\Schema\Metadata;
require __DIR__ . '/vendor/autoload.php';
$schema = schema(
int_schema('id', $nullable = false),
str_schema('name', $nullable = true),
bool_schema('active', $nullable = false, Metadata::empty()->add('key', 'value')),
);
data_frame()
->read(
from_array([
['id' => 1, 'name' => 'Product 1', 'active' => true],
['id' => 2, 'name' => 'Product 2', 'active' => false],
['id' => 3, 'name' => 'Product 3', 'active' => true],
])->withSchema($schema)
)
->collect()
->write(to_output(truncate: false, output: Output::schema))
->run();