nojimage / phpvjs
PSR-15 中间件,用于将 PHP 变量传递到 JavaScript
v1.0.0
2023-06-25 09:01 UTC
Requires
- php: ^7.2 || ^8.0
- ext-json: *
- psr/http-server-middleware: ^1.0 || ^2.0
Requires (Dev)
- laminas/laminas-diactoros: ^1.8 || ^2.4 || ^3.0
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^8.5 || ^9.0 || ^10.0
- squizlabs/php_codesniffer: ^3.7
README
概览
这个库旨在简化将值传递到如 Vue 这样的 JavaScript 框架,无需创建 API。它特别适用于快速开发多页面应用(MPA)的 Web 应用。
此项目提供了一种中间件,允许将 PHP 变量传递到 JavaScript。它旨在与具有 PSR-15 中间件堆栈的框架一起使用。
要求
- PHP 7.2 或更高版本
- 具有 PSR-15 兼容中间件堆栈的框架
安装
composer require nojimage/phpvjs
将其添加到您的 PSR-15 中间件堆栈中。以下是一个 CakePHP 4.x 的示例
// src/Application.php public function middleware(MiddlewareQueue $middlewareQueue): MiddlewareQueue { // ... $middlewareQueue->add(new \Nojimage\PHPvJS\PHPvJSMiddleware()); // ... };
使用方法
您可以使用从请求对象属性中获得的 \Nojimage\PHPvJS\VariableCarry
实例将 PHP 变量传递到 JavaScript。
/* * @var \Psr\Http\Message\ServerRequestInterface $request */ /** @var \Nojimage\PHPvJS\VariableCarry $carry */ $carry = $request->getAttribute(\Nojimage\PHPvJS\VariableCarry::class); $carry->toJs('foo', $somevalue);
在 JavaScript 端,您可以通过 window.__phpvjs__
对象访问 PHP 变量。
console.log(window.__phpvjs__); // or const phpvjs = window.__phpvjs__ ?? {};
与 Vue.js 的集成
在入口脚本文件中
import { createApp } from 'vue'; const app = createApp({ data() { // Pass PHP variables to Vue.js using PHPvJS return window.__phpvjs__ ?? {}; }, // ... other options }); // ...other setups app.mount("#app");
贡献
如果您发现任何错误或有关于新功能的建议,请创建一个问题或提交一个拉取请求。
许可证
此项目在 MIT 许可证下发布。