Clear MVC
Controllers, models, PHP views, and partials with no hidden magic.
PHPAML combines a readable autonomous MVC core with AML View, its optional declarative and reactive frontend for PHP.
$ aml create-view-app my-project
✓ AML View + Engine installed
$ cd my-project
$ aml doctor
✓ Diagnostics passed
$ aml serve
→ http://127.0.0.1:8910See the real first-run experience
In 36 seconds: the autonomous CLI installs Framework, View and Engine, creates a declarative interface, and launches it locally. No voice, no hidden steps.
Download PHPAML ↓An architecture you already understand
An explicit request lifecycle, separated responsibilities, and stable folder conventions. You always know where to look.
Essential and complete
Controllers, models, PHP views, and partials with no hidden magic.
Dynamic parameters, named routes, and per-route middleware.
A lightweight container automatically resolves typed dependencies.
Reactive state, effects, collections, themes, and client navigation in declarative PHP.
CSRF, sessions, validation, escaping, and secure headers.
Private PHP 8.4 and Composer runtimes, diagnostics, and updates.
First project
AML installs its own environment. No PHP setup, no global Composer, and no system folders to manage.
Quick-start guide →// routes/WebApp.php
final class WebApp extends Route
{
protected function routes(): void
{
$this->get('/users/{id}', [UserController::class, 'show'])
->name('users.show');
}
}The complete application platform
Start with only what you need, then combine independent components: Framework for HTTP and MVC, View for declarative UI, Engine for browser interactions, Data for persistence, and i18n for multilingual applications.
Explicit HTTP routing, MVC, middleware, dependency injection, validation and security.
Declarative pages, reusable components, layouts, reactive state, computed properties and effects.
Client-side state, events, collections and navigation without a full page reload or handwritten JavaScript.
Typed entities, expressive queries, relations, migrations and transactions for SQL and MongoDB.
JSON translation catalogs, parameters, pluralization, locale resolution and fallbacks.
final class Counter extends Page
{
#[State] public int $count = 0;
public function body(): View
{
return VStack(
Heading('AML View')->size(42),
Text(StateRef::to('count', $this->count)),
Button('Add one')->onClick(
ClientAction::increment('count')
)
)->gap(16);
}
}$users = $db->users()
->where('active', '=', true)
->orderBy('name')
->limit(20)
->all();
$db->transaction(function ($db) use ($lesson) {
$db->lessons()->add($lesson);
$db->saveChanges();
});#[Effect(
dependencies: ['query'],
debounce: 300,
concurrency: 'latest'
)]
protected function search(): EffectPlan
{
return Effects::run(
ClientAction::set('loading', true)
);
}
Button('Account')->onClick(
Navigate('/account')
);Built with classic PHPAML
The Last Lighthouse is a complete public demo built with PHPAML’s classic MVC architecture: routes, controller, model, PHP views, sessions, CSRF protection, redirects, and automated tests.
Chapter 1 · The island at dusk
Built with AML View + PHPAML Data
Tutor Chess is the public reference project for AML View: client-side navigation, reactive state, themes, Stockfish analysis, DeepSeek coaching, MongoDB accounts, and persistent lesson history.
Explore further
Start with only what you need, then combine independent components: Framework for HTTP and MVC, View for declarative UI, Engine for browser interactions, Data for persistence, and i18n for multilingual applications.
See the code examples →DEMOSExplore the public applications, their architecture, and their source code.
Browse the demonstrations →Ready to build?
aml create-view-app.