yii2-extensions/inertia-vue

Vue adapter helpers for yii2.

Maintainers

Package info

github.com/yii2-extensions/inertia-vue

pkg:composer/yii2-extensions/inertia-vue

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

dev-main / 0.1.x-dev 2026-04-15 00:25 UTC

This package is auto-updated.

Last update: 2026-04-15 00:28:06 UTC


README

Yii Framework

Inertia Vue


PHPUnit Mutation Testing PHPStan

Vue adapter helpers for yii2-extensions/inertia
Vue-friendly root view and Vite asset integration for Yii2 Inertia applications

Features

Feature Overview

Overview

yii2-extensions/inertia-vue is a thin PHP-side adapter package for building Vue-based Inertia applications on top of yii2-extensions/inertia.

This package does not install npm dependencies for you. Instead, it provides:

  • a Vue-specific bootstrap class for Yii2;
  • a default root view that outputs Vite tags plus the initial Inertia page payload;
  • a Vite helper component for development-server and manifest-driven production assets;
  • documentation and conventions for the application-owned Vue client entrypoint.

Installation

composer require yii2-extensions/inertia-vue:^0.1

Register the Vue bootstrap class:

return [
    'bootstrap' => [
        \yii\inertia\vue\Bootstrap::class,
    ],
    'components' => [
        'inertiaVue' => [
            'class' => \yii\inertia\Vite::class,
            'baseUrl' => '@web/build',
            'devMode' => YII_ENV_DEV,
            'devServerUrl' => 'http://localhost:5173',
            'entrypoints' => [
                'resources/js/app.js',
            ],
            'manifestPath' => '@webroot/build/.vite/manifest.json',
        ],
    ],
];

Use only yii\inertia\vue\Bootstrap::class in the bootstrap list. It already delegates the base yii2-extensions/inertia bootstrap.

Vue client entrypoint

Install the client-side dependencies in your application project:

npm install vue @vitejs/plugin-vue @inertiajs/vue3 vite

Then create your client entrypoint, for example resources/js/app.js:

import { createApp, h } from "vue";
import { createInertiaApp } from "@inertiajs/vue3";

createInertiaApp({
  resolve: (name) => {
    const pages = import.meta.glob("./Pages/**/*.vue", { eager: true });
    return pages[`./Pages/${name}.vue`];
  },
  setup({ el, App, props, plugin }) {
    createApp({ render: () => h(App, props) })
      .use(plugin)
      .mount(el);
  },
});

Production asset integration

This package expects a Vite manifest file generated with build.manifest = true. In production it will render:

  1. style sheet tags for the entrypoint chunk and its imported chunks;
  2. module entry scripts for each entrypoint;
  3. optional modulepreload tags for imported JavaScript chunks.

Documentation

For detailed configuration options and advanced usage.

Package information

PHP Yii 22.0.x Latest Stable Version Total Downloads

Quality code

Codecov PHPStan Level Max Super-Linter StyleCI

License

License