Norbert Orzechowicz
banner
norbert-tech.bsky.social
Norbert Orzechowicz
@norbert-tech.bsky.social
Problem solver, software architect, also working as a Data Witcher ⚔️, hunting and killing 🧌 and 🪳in data processing pipelines! Creator of https://flow-php.com
Pinned
Want to learn how I automated the setup of a local development environment for Flow #PHP with the following dependencies:

- PHP 8.2/8.3/8.4
- blackfire/xdebug/pcov/zstd/brotli/snappy/lz4
- PostgreSQL
- MySQL
- Redis
- Elasticsearch
- Meilisearch
- Azureite
- Localstack

Read 🧵
Recently I have been working on a php telemetry library that is fully compatible with open telemetry protocol and does not use global state/singletons.
I'm almost done with first draft, but of course I had to step into another rabbit hole... Async http client.
January 12, 2026 at 9:38 AM
Need to extract filtered data from PostgreSQL with pagination?
Pass your WHERE parameters directly and Flow handles pagination correctly.
The extractor auto-detects your parameter positions. If you use $1, $2 for filters, pagination params start at $3.

#PHP #PostgreSQL #ETL
January 9, 2026 at 12:33 PM
Flow #PHP now supports onComplete callbacks for Symfony streamed responses.
After streaming finishes, you get a Report with row counts, execution time, and memory stats.
#PHP #DataEngineering #Symfony
January 7, 2026 at 6:58 PM
Flow #PHP 0.30.0 is out!

github.com/flow-php/fl...

flow-php/postgresql - is a dedicated Flow PHP Client for #PostgreSQL focused on parsing/query building. It's focused and optimized for PostgreSQL, powerful DSL makes building even the most complex queries programmatically.
Release 0.30.0 · flow-php/flow
[0.30.0] - 2026-01-06 Added #2130 - Allow preserving existing values during DBAL upsert - @stloyd #2129 - Schema::isSame to use it for early exit merge operation when schema is the same - @norbert...
github.com
January 7, 2026 at 4:31 PM
Building SQL queries with optional filters is messy.
If-statements everywhere. String concatenation. Easy to mess up.
Flow PHP now has a fluent condition builder for PostgreSQL queries.
Build WHERE clauses incrementally. Add conditions when they exist, skip when they don't.
January 5, 2026 at 7:28 AM
From time to time I'm getting a feedback that Flow #PHP DSL is "ugly".
I disagree! it's just different than what most devs are used to.
Flow DSL is based on underscore, lower case functions that under the hood are creating objects. Yes, Flow is object oriented!
January 2, 2026 at 12:28 PM
Pagination is one the techniques to retrieve large data from database. Flow #PHP adapter for #PostgreSql provides 3 different types:

- limit offset
- key set
- cursor

Do you know which one is the least scalable?
December 31, 2025 at 6:57 PM
Flow #PHP playground is a PHP compiled to #WASM with multiple extensions allowing us to run #ETL pipelines in the browser.
One of the recent additions was #excel support.

try it yourself: flow-php.com/playground/...
December 29, 2025 at 7:32 AM
A top request with reports? Saving them as XLSX files. That's why we taught Flow #PHP to master #Excel.

flow-php.com/documentati...

Marry Christmas Everyone! 🎄🎁
Documentation - Flow PHP - Data Processing Framework
Documentation
flow-php.com
December 25, 2025 at 8:02 AM
Data processing in #PHP is still in it's early stages. Don't believe me? Look at your system and tell me how it's handling imports/exports.
Is it perhaps hand written importer/exporter?
Any chance it's using file_get_contents?

What stops you from using a Data Frame?
December 22, 2025 at 1:18 PM
flow-php/postgresql received Client::explain() : Plan feature
This means that we can now programmatically extract and analyze postgresql query execution plan!

More details in flow-php.com/documentati...
December 18, 2025 at 1:41 PM
#1 Did you ever had to make a tradeoffs between using a query builder and using a database specific features like CTE in #postgresql?

Not any more flow-php/postresql is a brand new library that just joined Flow #PHP Ecosystem!

flow-php/postgresql comes with 3 building blocks 👇
December 16, 2025 at 5:13 PM
Flow #PHP now supports PHP 8.5.

Dropped 8.2, moved to 8.3 for development, added support for 8.5.

0.29.0 coming soon.

github.com/flow-php/fl...
Enabled support for php 8.5 in github actions by norberttech · Pull Request #1906 · flow-php/flow
Resolves: #1905 Change Log Added support for php 8.5 Fixed Changed Removed Deprecated Security
github.com
December 12, 2025 at 11:39 AM
I'm pushing release of next Flow PHP version by a week (maybe 2).

There are two things I would like to include in the next release:

- support for PHP 8.5 (and migrating codebase to 8.3)
- first release of flow-php/postgresql library
December 8, 2025 at 6:10 PM
flow-php/pg-query quickly escalated from "I just want to parse sql to AST" into "why not build a proper query builder?" 😅

So there is, #PHP Query Builder for #PostgreSQL inspired by JOOQ
(API will change, this is just PoC)
December 5, 2025 at 10:42 AM
Flow #PHP library for parsing SQL flow-php/pg-query just got significantly better!

Now it can not only turn query into AST but also convert AST to nicely formatted string!

flow-php.com/playground/...
December 3, 2025 at 9:00 AM
Another addition to Flow, auto generated Table of Contents to easier get to relevant sections of documentation 😁
December 2, 2025 at 5:24 PM
I just upgraded Flow #PHP Playground.
Now it opens preview of predefined/uploaded files in tabs.
I also added some colors to the output to make it more readable.
December 1, 2025 at 9:00 AM
🇵🇱
Staram się publikować tylko sprawy techniczne, ale ta jest ważna.
Leszek z Joanną potrzebują pomocy, toczą walkę, której nie powinni, trzeba im pomóc wyrównać szanse.

Więcej możecie przeczytać na pomagam.pl/4hgb6g

Wpłać ile możesz, 5, 10, 500, sky is the limit
Walka z rozsianym rakiem jajnika | Pomagam.pl
Cześć! Jestem Asia, miałam wtedy 34 lata i nic nie zapowiadało tego co będzie dalej. Zwykła torbiel, usunie się i po sprawie. Nie martwiłam się zbytnio, lekarze mnie uspokajali. Po zabiegu lekarz operator powiedział tylko, że bardzo mu przykro ale to nie było to czego się spodziewali i niestety …
pomagam.pl
November 28, 2025 at 10:45 AM
I'm cooking another cool addition to Flow #PHP 👨‍🍳
What I was always missing was a proper SQL Parser in PHP, something that can create AST Tree from SQL query string.

So I created one: flow-php.com/documentati...
Documentation - Flow PHP - Data Processing Framework
Documentation
flow-php.com
November 27, 2025 at 2:01 PM
I'm very excited about what I'm going to share now!

Flow #PHP just received a fully interactive playground allowing to build and execute ETL pipelines directly in the browser!! 🤯

Demo: youtu.be/bJm0BZUrTrg
November 25, 2025 at 12:06 PM
New version of Flow #PHP was released, 0.27.0.

This was a bigger release that brought a few very cool features to DataFrame.

Let's start by covering the new data type - HTML delivered by @stloyd.
November 12, 2025 at 11:26 AM
1/8 I have been recently playing with the idea of creating an interactive playground for Flow #PHP where the ETL pipeline can be executed directly in the browser.

Today I managed to put together the first working version!
November 3, 2025 at 7:30 AM
@stloyd came up with a proposition of adding HTLM entry type to Flow #PHP and leveraging DOM\HTMLDocument introduced in PHP8.4

Which in my opinion will open a whole new world of possibilities 🤩

You can check the progress and details here: github.com/flow-php/fl...
[Proposal]: Add `HTMLEntry` & related · Issue #1912 · flow-php/flow
Describe the Proposal To easily work with the new \DOM\HTMLDocument, it would be good to introduce a new entry, type & cast for this. This would be a nice addition to the existing XML type, whi...
github.com
October 28, 2025 at 9:00 AM
Flow #PHP 0.26.0 was just released!

Among fixes and improvements to our website, there is also a small gem.

DataFrame::batchBy()

It's a smarter version of batchSize that not only splits the dataset into batches by size but also keeps them logically grouped by column.
October 27, 2025 at 10:59 AM