Title here
Summary here
Pionia includes Porm (Pionia ORM) — a Medoo-inspired query builder, not a full ORM. There are no models or migrations in the framework; you work with tables, arrays, and a fluent API.
// Global helpers (recommended)
$row = table('users')->get(1);
$rows = table('users')->filter(['active' => 1])->limit(10)->all();
// Named connection from environment/settings.ini
table('orders', null, 'db_pgsql')->save(['total' => 99]);Porm is built into your Pionia app. Use table() or db() — not legacy Porm\Porm::from() patterns from older tutorials.
| Topic | Page |
|---|---|
| Configuration & entry points | Getting started |
| CRUD & reads | Making queries |
filter(), orderBy, limit | Filtering |
| WHERE operators & clause keys | WHERE DSL reference |
| Joins & aliases | Relationships & joins |
count, sum, Agg builder | Aggregation |
PaginationCore & list APIs | Pagination |
| Multi-DB & pooling | Connections |
| Transactions & raw SQL | Transactions & raw SQL |
chunk, random, explain | Performance |
| Method cheat sheet | API reference |
table('users')
├─ Direct mode → get(), save(), update(), delete(), has(), random(), …
├─ filter() → Builder (where, orderBy, limit, all, count, …)
└─ join() → Join (left, inner, right, full, all, count, random, …)After filter() or join(), table-level write methods (save, get, etc.) are not available on the same chain — finish with all(), get(), or count() on the builder.
GenericServiceConnectionManager keeps PDO alive across requeststable(), db(), connectionManager()