php-forge/inertia

Framework-agnostic PHP core for the Inertia.js protocol.

Maintainers

Package info

github.com/php-forge/inertia

pkg:composer/php-forge/inertia

Transparency log

Fund package maintenance!

terabytesoftw

Statistics

Installs: 180

Dependents: 3

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main / 0.1.x-dev 2026-08-22 22:36 UTC

This package is auto-updated.

Last update: 2026-08-22 22:40:00 UTC


README

PHP Forge

Inertia


PHPUnit Mutation Testing Easy Coding Standard Dependency Check

A framework-agnostic PHP core for negotiating and producing current Inertia.js protocol data.

Features

Feature overview

Installation

composer require php-forge/inertia:^0.1

PHP 8.3 or later and the JSON extension are required.

Quick start

use PHPForge\Inertia\{PageInput, Protocol, RequestContext};
use PHPForge\Inertia\Prop\Prop;

$request = new RequestContext(
    method: 'GET',
    url: '/users?page=1',
    absoluteUrl: 'https://example.com/users?page=1',
    headers: [
        'X-Inertia' => 'true',
        'X-Inertia-Version' => 'assets-v1',
    ],
);

$result = (new Protocol())->page(
    $request,
    new PageInput(
        component: 'Users/Index',
        props: [
            'users' => Prop::merge(fn (): array => loadUsers())->append('data', 'id'),
            'analytics' => Prop::defer(fn (): array => loadAnalytics(), group: 'analytics'),
            'filters' => Prop::optional(fn (): array => availableFilters()),
        ],
        version: 'assets-v1',
        sharedProps: [
            'auth' => Prop::once(fn (): array => currentUser())->as('authenticated-user'),
        ],
        errors: validationErrors(),
        flash: flashedData(),
    ),
);

Protocol does not return a framework response. An adapter inspects the result, applies statusCode() and headers(), serializes page() for an Inertia visit, or embeds the page JSON in the root HTML document for an initial visit.

Adapter boundary

The core owns protocol decisions and page shaping. A framework adapter remains responsible for:

  • extracting the method, relative URL, absolute URL, and supported request headers;
  • resolving shared props, validation errors, flash data, and the asset version;
  • rendering the root HTML document and embedding the initial page JSON;
  • translating neutral results into its HTTP response implementation;
  • managing sessions, flash persistence or reflashing, redirects, routes, CSRF, and asset tooling;
  • JSON encoding the final page with the framework application's selected flags.

See the configuration reference for the complete result mapping.

Documentation

Package information

PHP Latest Stable Version Total Downloads

Code quality

Codecov PHPStan Level Max Quality Dependency Check

Social networks

Follow on X

License

License