Skip to content
Search
Examples

Data frame

Description

Read data from databases using Doctrine DBAL. This example demonstrates reading from a single table with pagination. Multiple extraction strategies are available including limit/offset pagination, query builders, and parameterized queries.

Documentation

Code

<?php

declare(strict_types=1);

use function Flow\ETL\Adapter\Doctrine\from_dbal_limit_offset;
use function Flow\ETL\DSL\{data_frame, to_output};
use Doctrine\DBAL\DriverManager;
use Flow\ETL\Adapter\Doctrine\{Order, OrderBy};

require __DIR__ . '/vendor/autoload.php';

if (!\extension_loaded('pdo_sqlite')) {
    print 'Example skipped. Requires PDO SQLite extension which is not available in this environment.' . PHP_EOL;

    return;
}

$connection = DriverManager::getConnection([
    'path' => __DIR__ . '/input/orders.db',
    'driver' => 'pdo_sqlite',
]);

data_frame()
    ->read(
        from_dbal_limit_offset(
            $connection,
            'orders',
            new OrderBy('created_at', Order::DESC),
        )
    )
    ->collect()
    ->write(to_output(truncate: false))
    ->run();
Contributors

Built in the open.

Join us on GitHub
scroll back to top