From zero to your idea.
Expressive routing, typed controllers, and a CLI that does the repetitive work. Spend your time on what makes your application yours.
Meet your toolkitA modern PHP framework that gets out of your way.
Build something great. Run it anywhere.
composer global require phponwheels/phponwheels
<?php
declare(strict_types=1);
use App\Controllers\HelloController;
use PhpOnWheels\Routing\RouteCollection;
return static function (
RouteCollection $routes,
bool $debug,
): void {
$routes->get(
'/hello/{name}',
HelloController::class,
'hello',
);
};
<?php
declare(strict_types=1);
namespace App\Controllers;
use PhpOnWheels\Http\{Response, ServerRequest};
use PhpOnWheels\Routing\Handler;
final class HelloController implements Handler
{
public function handle(
ServerRequest $request,
): Response {
return Response::text('Hello, world!');
}
}
LESS CEREMONY. MORE CREATING.
Thoughtful defaults, explicit architecture, and the tools
to take your next idea all the way to production.
Expressive routing, typed controllers, and a CLI that does the repetitive work. Spend your time on what makes your application yours.
Meet your toolkitEscaped templates, CSRF protection, secure sessions, and parameterized queries. The convenient path is the safe path, by design.
Explore the safety modelIsolated request scopes and immutable shared services. Traditional PHP or long-lived workers, without a different application for each.
Look under the hoodDatabase & migrations · Authentication · Forms & validation · Mail · Caching · APIs & AI
↗YOUR CODE. YOUR CHOICE.
Start with the built-in development server. Deploy to
the infrastructure you know. Your application stays yours.
A real HTTP server, built right in.
No extra setup to get moving.
php pow serveBoot once. Serve many requests.
Worker safety comes standard.
Your established production stack.
The exact same request pipeline.
At home on traditional hosting.
No application rewrite required.
YOUR NEXT PROJECT STARTS HERE
Bring PHP 8.3+, Composer, and your next idea.
We'll bring the wheels.
# Install the project generator
composer global require phponwheels/phponwheels
# Create something that's yours
pow new my-app
cd my-app
composer install
# And you're off.
php pow migrate
php pow serve --debug