PHPackages                             waaseyaa/inertia - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. waaseyaa/inertia

ActiveLibrary[API Development](/categories/api)

waaseyaa/inertia
================

Server-side Inertia.js v3 protocol adapter for Waaseyaa — optional/experimental L6 surface; see README for the DIR-007 framing.

v0.1.0-alpha.293(2d ago)03.0k1GPL-2.0-or-laterPHPPHP &gt;=8.5

Since Mar 19Pushed 2d agoCompare

[ Source](https://github.com/waaseyaa/inertia)[ Packagist](https://packagist.org/packages/waaseyaa/inertia)[ RSS](/packages/waaseyaa-inertia/feed)WikiDiscussions main Synced yesterday

READMEChangelogDependencies (19)Versions (262)Used By (1)

waaseyaa/inertia
================

[](#waaseyaainertia)

> **Optional / experimental — not the primary workspace UI.** Per charter directive **DIR-007** (`docs/governance/charter.md`), the committed workspace UI is the Nuxt SPA in `packages/admin/`. This L6 adapter is supported for distributions that prefer server-driven UI, but is **not** bundled by `waaseyaa/full`.

**Layer 6 — Interfaces**

Server-side Inertia.js v3 protocol adapter. A controller returns `Inertia::render($component, $props)`, producing an `InertiaResponse` that carries the Inertia page object. `InertiaMiddleware` reads the `X-Inertia-*` headers to tell an initial full-page load (HTML via `RootTemplateRenderer`) from an XHR navigation (JSON page object), and returns `409` + `X-Inertia-Location` on an asset-version mismatch. Implements the foundation contracts `InertiaPageResultInterface` and `InertiaFullPageRendererInterface`.

> **Partial reloads are not yet wired (experimental).** `OptionalProp` and `PropResolver` are provided as standalone building blocks for deferring expensive props (`PropResolver::resolve($props, $only, $except)`), but nothing in this package invokes them: `InertiaMiddleware` reads only `X-Inertia` / `X-Inertia-Version` (not the `X-Inertia-Partial-Data` partial-reload header), and `InertiaResponse` carries the full prop set unchanged. So a partial reload currently returns **all** props, not just the requested keys. Honoring `only` / `except` automatically is unbuilt — call `PropResolver` directly in a controller if you need it today.

Install
-------

[](#install)

Ships in the `waaseyaa/framework` metapackage but is not pulled in by `waaseyaa/full`; add it explicitly: `composer require waaseyaa/inertia`. Register `Waaseyaa\Inertia\InertiaServiceProvider` (auto-discovered via `extra.waaseyaa.providers`) to wire the renderer and HTTP middleware.

Key API
-------

[](#key-api)

```
// Inertia — static response factory + shared-prop / version state.
Inertia::setVersion(string $version): void
Inertia::getVersion(): string
Inertia::setRenderer(RootTemplateRenderer $renderer): void
Inertia::getRenderer(): RootTemplateRenderer
Inertia::share(string $key, mixed $value): void
Inertia::render(string $component, array $props, bool $encryptHistory = false, bool $clearHistory = false): InertiaResponse
Inertia::reset(): void

// InertiaResponse implements InertiaPageResultInterface — readonly: component, props,
//   url, version, encryptHistory, clearHistory, preserveFragment, and the
//   deferred/merge/prepend/deepMerge/once prop sets.
public function toPageObject(): array

// InertiaMiddleware — #[AsMiddleware(pipeline: 'http', priority: 20)]
public function __construct(string $version)
public function process(Request $request, HttpHandlerInterface $next): Response

// PropResolver
public static function optional(\Closure $callback): OptionalProp
public function resolve(array $props, array $only = [], array $except = []): array

// RootTemplateRenderer implements InertiaFullPageRendererInterface
public function __construct(?\Closure $template = null, ?ViteAssetManager $assetManager = null)
public function render(array $pageObject): string

// InertiaServiceProvider implements HasMiddlewareInterface
public function register(): void
public function registerWithRoot(?string $root): void
public function middleware(EntityTypeManager $entityTypeManager): array
```

Usage
-----

[](#usage)

```
Inertia::setVersion('abc123');
Inertia::share('auth', fn() => ['user' => currentUser()]);
$response = Inertia::render('Users/Index', ['users' => [1, 2, 3]]);
$page = $response->toPageObject();
```

Page props override shared props of the same key; shared closures resolve fresh per `render()`; `toPageObject()` always injects `props.errors`.

###  Health Score

51

—

FairBetter than 95% of packages

Maintenance99

Actively maintained with recent releases

Popularity23

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 79.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

261

Last Release

2d ago

PHP version history (2 changes)v0.1.0-alpha.31PHP &gt;=8.4

v0.1.0-alpha.176PHP &gt;=8.5

### Community

Maintainers

![](https://www.gravatar.com/avatar/25d0ff572e93e3461e5180a920725d65691fd1e15e2d914b254dbbc2d6c393bd?d=identicon)[jonesrussell](/maintainers/jonesrussell)

---

Top Contributors

[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (114 commits)")[![jonesrussell](https://avatars.githubusercontent.com/u/499552?v=4)](https://github.com/jonesrussell "jonesrussell (30 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/waaseyaa-inertia/health.svg)

```
[![Health](https://phpackages.com/badges/waaseyaa-inertia/health.svg)](https://phpackages.com/packages/waaseyaa-inertia)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
