Skip to content
@flow-php

Flow PHP

img

Flow is a PHP-based, strongly typed ETL (Extract, Transform, Load) and asynchronous data processing framework with low memory consumption thanks to its generator-based architecture.

Latest Stable Version Latest Unstable Version License Test Suite

Tip

In case of any questions, feel free to join our Discord Discrod Server

Supported PHP versions: PHP 8.1 PHP 8.2 PHP 8.3


Usage Example

Thanks to its rich collection of adapters, Flow can read and write data between sources and destinations while applying defined transformations on the fly.

<?php

declare(strict_types=1);

use function Flow\ETL\Adapter\Parquet\{from_parquet, to_parquet};
use function Flow\ETL\DSL\{data_frame, lit, ref, sum, to_output, overwrite};
use Flow\ETL\Filesystem\SaveMode;

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

data_frame()
    ->read(from_parquet(__DIR__ . '/orders_flow.parquet'))
    ->select('created_at', 'total_price', 'discount')
    ->withEntry('created_at', ref('created_at')->cast('date')->dateFormat('Y/m'))
    ->withEntry('revenue', ref('total_price')->minus(ref('discount')))
    ->select('created_at', 'revenue')
    ->groupBy('created_at')
    ->aggregate(sum(ref('revenue')))
    ->sortBy(ref('created_at')->desc())
    ->withEntry('daily_revenue', ref('revenue_sum')->round(lit(2))->numberFormat(lit(2)))
    ->drop('revenue_sum')
    ->write(to_output(truncate: false))
    ->withEntry('created_at', ref('created_at')->toDate('Y/m'))
    ->saveMode(overwrite())
    ->write(to_parquet(__DIR__ . '/daily_revenue.parquet'))
    ->run();
$ php daily_revenue.php
+------------+---------------+
| created_at | daily_revenue |
+------------+---------------+
|    2023/10 |    206,669.74 |
|    2023/09 |    227,647.47 |
|    2023/08 |    237,027.31 |
|    2023/07 |    240,111.05 |
|    2023/06 |    225,536.35 |
|    2023/05 |    234,624.74 |
|    2023/04 |    231,472.05 |
|    2023/03 |    231,697.36 |
|    2023/02 |    211,048.97 |
|    2023/01 |    225,539.81 |
+------------+---------------+
10 rows

Sponsors

Flow PHP is sponsored by:

  • Blackfire - the best PHP profiling and monitoring tool!

Pinned Loading

  1. flow flow Public

    Flow PHP - data processing framework

    PHP 520 28

  2. etl etl Public

    PHP - ETL (Extract Transform Load) data processing library

    PHP 350 21

  3. etl-adapter-doctrine etl-adapter-doctrine Public

    PHP ETL Adapter: Doctrine

    PHP 3 2

  4. etl-adapter-json etl-adapter-json Public

    PHP ETL Adapter: JSON

    PHP 6 3

  5. etl-adapter-xml etl-adapter-xml Public

    PHP ETL Adapter: XML

    PHP 4 2

Repositories

Showing 10 of 36 repositories
  • flow-php.com Public

    🐘 Flow PHP website

    flow-php/flow-php.com’s past year of commit activity
    HTML 0 1 0 0 Updated Dec 22, 2024
  • flow Public

    Flow PHP - data processing framework

    flow-php/flow’s past year of commit activity
    PHP 520 MIT 28 16 0 Updated Dec 22, 2024
  • etl Public

    PHP - ETL (Extract Transform Load) data processing library

    flow-php/etl’s past year of commit activity
    PHP 350 MIT 21 0 0 Updated Dec 18, 2024
  • cli Public
    flow-php/cli’s past year of commit activity
    PHP 1 0 0 0 Updated Dec 18, 2024
  • etl-adapter-text Public

    PHP ETL Adapter: Text

    flow-php/etl-adapter-text’s past year of commit activity
    PHP 2 MIT 0 0 0 Updated Dec 18, 2024
  • etl-adapter-http Public

    PHP ETL Adapter: Http

    flow-php/etl-adapter-http’s past year of commit activity
    PHP 3 MIT 2 0 0 Updated Dec 18, 2024
  • etl-adapter-elasticsearch Public

    PHP ETL Adapter: Elasticsearch

    flow-php/etl-adapter-elasticsearch’s past year of commit activity
    PHP 2 MIT 1 0 0 Updated Dec 18, 2024
  • etl-adapter-meilisearch Public

    PHP ETL Adapter: MeiliSearch

    flow-php/etl-adapter-meilisearch’s past year of commit activity
    PHP 3 MIT 0 0 0 Updated Dec 18, 2024
  • etl-adapter-google-sheet Public

    PHP ETL Adapter Google Sheet

    flow-php/etl-adapter-google-sheet’s past year of commit activity
    PHP 4 MIT 0 0 0 Updated Dec 18, 2024
  • etl-adapter-logger Public

    PHP ETL Adapter: Logger

    flow-php/etl-adapter-logger’s past year of commit activity
    PHP 3 MIT 1 0 (1 issue needs help) 0 Updated Dec 18, 2024

Top languages

Loading…

Most used topics

Loading…