How deesoft/yii2-inertia works
This repository is a Yii2 adapter for Inertia: server-side Yii routes render page data and the Vue client displays it without a separate API. The documented workflow also covers shared and deferred props, Vite asset registration, and optional Gii CRUD scaffolding. The graph includes those product branches; core PHP implementation excerpts were not provided, so uncertain internal call wiring is left out.
Main entry points: app.js Vue app entry · Inertia.php Inertia API · ResponseFactory.php Response factory · pages Page components
Components 19
Yii server adapter
- Yii routes
- Inertia API
src/Inertia.php - Response factory
src/ResponseFactory.php - Prop resolution
src/ResolveDataEvent.php - Page serializer
src/Serializer.php - Error handling
src/ErrorHandler.php
Vue client
- Vue app entry
resources/client/app.js - Navigation plugin
resources/client/plugins/main.js - Page components
resources/client/pages - App layouts
resources/client/layouts - UI components
resources/client/components - Client composables
resources/client/composables
CRUD scaffolding
- CRUD generator
gii/crud/Generator.php - CRUD templates
gii/crud - Generated controllers
gii/crud/default/controller.php
Assets and shell
- Vite asset bundle
src/ViteAsset.php - Vite integration
src/vite-plugin.js - HTML app shell
src/views/app.php
Other components
- Browser user
Connections 22
- Browser user → Yii routes: requests pages
- Yii routes → Inertia API: renders pages
- Inertia API → Response factory: creates response
- Inertia API → Prop resolution: resolves props
- Prop resolution → Page serializer: serializes data
- Response factory → Browser user: returns page response
- Browser user → Vue app entry: loads client
- Vue app entry → Page components: resolves page
- Vue app entry → Navigation plugin: installs plugin
- Vue app entry → App layouts: sets default layout
- Page components → App layouts: renders within
- App layouts → UI components: uses components
- Page components → Client composables: uses composables
- Navigation plugin → Browser user: visits routes
- CRUD generator → CRUD templates: renders templates
- CRUD templates → Generated controllers: generates CRUD
- Generated controllers → Inertia API: renders pages
- Generated controllers → Browser user: returns CRUD response
- Vite asset bundle → Browser user: registers assets
- Vite integration → Vue app entry: integrates assets
- Response factory → HTML app shell: uses shell
- Error handling → Browser user: renders errors