PipeFlow is a pragmatic PHP 8.5+ framework that leans hard into functional composition (pipeline style) while still giving you familiar MVC ergonomics (controllers, models, views, migrations) + a CLI scaffold.
composer install
cp .env.example .env
php pipeflow serveOpen: http://127.0.0.1:8000
- Main docs:
docs/README.md - CLI guide:
docs/CLI.md - Routing & pipelines:
docs/ROUTING.md - Error handling:
docs/ERROR_HANDLING.md - Flash messages:
docs/FLASH.md - Authentication:
docs/AUTH.md - Database layer:
docs/DATABASE.md - Workers:
docs/WORKERS.md - HTTP helpers:
docs/HTTP.md - Changelog:
docs/CHANGELOG.md - Architecture overview:
docs/ARCHITECTURE.md - Per-file reference:
docs/reference/ - Codex / AI contributor notes:
docs/CODEX.md
Routes live in routes/web.php:
$router = app(\PipeFlow\Router\Router::class);
$router->get('/', [\App\Controllers\HomeController::class, 'index'], 'home');PipeFlow now supports Phoenix-ish request flow using a Conn object and a plug pipeline.
PipeFlow\Http\Conncarries Request, Response, session, assigns, etc.- Plugs implement
PipeFlow\Plug\Contracts\PlugInterfaceand are composed viaPlugStack. - Built-in plugs:
SessionPlug,CsrfPlug(enabled by default in the Kernel).
Write a route handler that receives a Conn:
use PipeFlow\Http\Conn;
$router->get('/hello', function (Conn $conn) {
return $conn->assign('name', 'world')->render('hello');
});view('welcome', ['title' => 'PipeFlow']) renders resources/views/welcome.php.
Create a model:
php pipeflow make:model Post --migrationBase model lives at PipeFlow\Database\Model.
php pipeflow migrate
php pipeflow migrate:rollback --steps=1Migrations live in database/migrations.
Use the global pipe() helper:
$result = pipe('hello',
fn($s) => strtoupper($s),
fn($s) => $s . ' WORLD'
);MIT