首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PHP 强类型统一数据处理框架 Flow

PHP 强类型统一数据处理框架 Flow

作者头像
Tinywan
发布2026-07-01 16:03:50
发布2026-07-01 16:03:50
760
举报
文章被收录于专栏:开源技术小栈开源技术小栈

前言:最近看到一个PHP 新的 RFC。是有关在 PHP 应用中,深度嵌套数组非常常见,尤其是在处理配置数据、解码的 JSON 负载、请求数据、框架元数据或其他动态结构时的RFC。 RFC链接:https://wiki.php.net/rfc/array_get_and_array_has。于是乎就发现了下面这个好用的数据处理框架 Flow

简介

Flow 是一个基于 PHP 的、强类型 的数据处理框架,具有极低的内存占用最先进的数据处理框架,支持构建可扩展的数据处理管道(pipeline),并可在各种数据源与目标之间轻松移动数据。

它专为构建大规模、可扩展的数据处理管道而设计,能帮助你在不同数据源(如数据库、CSV、JSON、数组等)和目标之间高效传输与转换数据。

核心特点

  • 基于 PHP 的强类型数据处理框架,内存占用极低
  • 支持构建高度可扩展的数据处理管道
  • 可在多种数据源和目标之间移动数据
  • 支持操作系统:LinuxmacOSWindows(实验性支持)

快速使用

安装

代码语言:javascript
复制
composer require flow-php/etl

数组示例

直接从 PHP 数组读取数据。当你的数据已经存储在内存中,比如 API 响应或测试夹具时,这非常有用。

代码语言:javascript
复制
<?php

declare(strict_types=1);

usefunctionFlow\ETL\DSL\{data_frame, from_array, to_output};

require__DIR__ . '/vendor/autoload.php';

data_frame()
    ->read(from_array([
        ['id' => 1],
        ['id' => 2],
        ['id' => 3],
        ['id' => 4],
        ['id' => 5],
    ]))
    ->collect()
    ->write(to_output(truncate: false))
    ->run();

CSV 文件处理

代码语言:javascript
复制
<?php

declare(strict_types=1);

usefunctionFlow\ETL\Adapter\CSV\{from_csv, to_csv};
usefunctionFlow\ETL\DSL\{data_frame, lit, ref, sum, to_output};
useFlow\ETL\Filesystem\SaveMode;

require__DIR__ . '/vendor/autoload.php';

data_frame()
    ->read(from_csv(__DIR__ . '/orders_flow.csv'))
    ->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'))
    ->mode(SaveMode::Overwrite)
    ->write(to_csv(__DIR__ . '/daily_revenue.csv'))
    ->run();

更多了解:https://flow-php.com

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 核心特点
  • 快速使用
    • 安装
    • 数组示例
    • CSV 文件处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档