Download the PHP package phpsoftbox/inertia without Composer

On this page you can find all versions of the php package phpsoftbox/inertia. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package inertia

Inertia

Минимальный серверный адаптер Inertia.js для PhpSoftBox.

Возможности

Пример

Shared-данные и состояние между запросами

Inertia — долгоживущий сервис: в worker'е (RoadRunner, Swoole и т.п.) один экземпляр обслуживает много запросов. Поэтому shared-данные разделены на два уровня:

Уровень Как задаётся Время жизни
Базовый (приложение) InertiaConfig(shared: [...]), shareProvider(..., persistent: true) весь срок жизни сервиса
Запрос share(), shareMany(), shareProvider(...) (по умолчанию persistent: false) до setRequest() / reset()

Порядок наложения shared-данных (последующий уровень переопределяет предыдущий): InertiaConfig::$shared → share()/shareMany() → shared area → persistent-провайдеры → request-провайдеры → area-провайдеры → props из render().

До 1.0 share() жил до конца работы процесса (например, share('auth', $user) был виден следующему пользователю в worker'е), а shareProvider() по умолчанию был persistent и накапливался при регистрации на каждом запросе.

Слияние props

Shared-данные и props сливаются рекурсивно только для ассоциативных массивов. Списки (array_is_list) и скаляры из более приоритетного источника заменяют значение целиком, без слияния по индексам:

Root view

HTML первого захода рендерит View\PhpViewRenderer по шаблону InertiaConfig::rootView() с id корневого элемента InertiaConfig::rootId():

В шаблон передаются $page (массив page), $rootId, $ssr (только при SSR) и shared-данные renderer-а. Для безопасной вставки page в HTML используйте View\InertiaHtml — JSON кодируется с JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT, поэтому </script> в props не ломает разметку:

Не вставляйте json_encode($page) без этих флагов: строка </script> в любом prop закроет тег (XSS).

Partial reload

Компонент поддерживает partial reload на уровне top-level props. Фильтрация включается только для Inertia request, если X-Inertia-Partial-Component совпадает с компонентом, который рендерится.

Поддерживаемые headers:

Если клиент отправил оба headers, X-Inertia-Partial-Except имеет приоритет. Для X-Inertia-Partial-Data page props фильтруются до вычисления closures, поэтому незапрошенные тяжелые props не будут вычисляться.

Нормализация payload

В Inertia можно передать PayloadNormalizerInterface. Normalizer применяется ко всем выбранным page/shared props после вычисления Closure, но до JSON, HTML и SSR-рендеринга:

ResourcePayloadNormalizer является опциональной интеграцией. Для него требуется пакет phpsoftbox/resource; собственный адаптер в приложении не нужен.

При partial reload исключённые props не вычисляются и не передаются normalizer.

Метаданные страницы

Можно задавать title, description, keywords через сервис PageMeta. Данные попадут в props.meta и в HTML‑теги на первом рендере.

Breadcrumbs

Menu

Tabs

SSR

SSR опционален и выключен по умолчанию. Для интеграции можно использовать встроенный HTTP renderer или свой рендерер, реализующий SsrRendererInterface.

HttpSsrRenderer отправляет InertiaPage JSON POST-запросом на SSR endpoint и ожидает ответ формата ['head' => string[], 'body' => string]. По умолчанию renderer работает в fail-open режиме: если SSR endpoint недоступен, он вернёт null, и Inertia отдаст обычный HTML shell.

Для строгого режима передайте failSilently: false: тогда недоступный сервер, HTTP-статус вне 2xx, пустой или невалидный JSON-ответ, а также ответ без head и body приводят к RuntimeException. Встроенный NativeHttpSsrTransport сам бросает RuntimeException в этих случаях; собственный transport может бросить исключение или вернуть null — в строгом режиме оба варианта считаются ошибкой.

В конфиге Inertia:

Если SSR включён и доступен, view получает переменную $ssr: ['head' => string[], 'body' => string]. Дефолтный view в AppBackend уже умеет вставлять эти данные.

Areas

Areas позволяют централизованно разделять публичную часть, админку, кабинет или tenant‑области по host/path и задавать для них свои Inertia-настройки.

InertiaAreaConfig поддерживает:

Host-based areas

Для разделения публичной части и админки по доменам настройте areas через hosts. Это удобнее, чем path-prefix, если приложение живёт на нескольких поддоменах:

Доступ к такой area лучше защищать отдельным auth middleware, например AreaAccessMiddleware из phpsoftbox/auth, с тем же именем area:

Area-specific shared-data можно расширять отдельными провайдерами:

shared из InertiaAreaConfig и данные из AreaSharedDataProviderInterface объединяются рекурсивно. Provider применяется позже и поэтому может дополнить или переопределить значения из конфига.

Итоговые props будут содержать:

Если provider вернёт уже существующий ключ, он заменит значение из конфига:

В этом случае итоговое app.name будет Runtime Admin.


All versions of inertia with dependencies

PHP Build Version
Package Version
Requires php Version ^8.5
phpsoftbox/session Version ^1.0
phpsoftbox/view Version ^1.0
psr/http-factory Version ^1.1
psr/http-message Version ^2.0
psr/http-server-handler Version ^1.0
psr/http-server-middleware Version ^1.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package phpsoftbox/inertia contains the following files

Loading the files please wait ...