phpsoftbox / vite
Vite integration for the PhpSoftBox framework
dev-master
2026-06-07 12:20 UTC
Requires
- php: ^8.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- phpsoftbox/cli-app: dev-master
- phpsoftbox/cs-fixer: ^1.1.0
- phpunit/phpunit: ^11.2
This package is auto-updated.
Last update: 2026-06-07 12:20:42 UTC
README
Минимальный адаптер Vite для генерации тегов скриптов и стилей.
Использование
$vite = new \PhpSoftBox\Vite\Vite( manifestPath: __DIR__ . '/public/build/manifest.json', hotFile: __DIR__ . '/public/hot', devServer: 'https://vite.domain.local', environment: 'dev', buildBase: '/build', ssrUrl: 'http://node:13714/render', ssrEntry: 'resources/js/ssr.tsx', ssrTimeout: 2.0, ); echo $vite->tags('resources/js/app.tsx');
Что умеет
- dev‑сервер: подключает
@vite/clientи entrypoint. - build‑режим: читает
manifest.json, подключает JS/CSS, CSS imported chunks иmodulepreloadдля статических imports. - SSR runtime: хранит endpoint SSR-сервера, SSR entrypoint и timeout.
Production manifest
В build-режиме компонент читает manifest, который генерирует Vite.
Для каждого entrypoint подключается основной JS-файл, его CSS, CSS
статически импортированных chunks и modulepreload для этих chunks.
echo $vite->tags('resources/js/app.tsx');
Если entrypoint импортирует общий bundle, итоговый HTML будет включать примерно такой набор тегов:
<link rel="stylesheet" href="/build/assets/app.123.css"> <link rel="stylesheet" href="/build/assets/vendor.456.css"> <link rel="modulepreload" href="/build/assets/vendor.456.js"> <script type="module" src="/build/assets/app.123.js"></script>
SSR runtime
Компонент Vite не рендерит Inertia сам. Он хранит runtime-настройки, которые приложение может передать SSR renderer-у:
if ($vite->ssrEnabled()) { $renderer = new HttpSsrRenderer( url: $vite->ssrUrl(), timeout: $vite->ssrTimeout(), ); }
Доступные методы:
devServerUrl()— URL Vite dev-server в dev-режиме илиnull;isDev()—true, если окружение неprod;ssrEnabled()—true, если задан SSR endpoint;ssrUrl()— нормализованный URL SSR endpoint;ssrEntry()— entrypoint SSR bundle;ssrTimeout()— timeout HTTP SSR запроса.