nojimage/phpvjs

PSR-15 中间件,用于将 PHP 变量传递到 JavaScript

v1.0.0 2023-06-25 09:01 UTC

This package is auto-updated.

Last update: 2024-08-27 02:04:30 UTC


README

License Packagist Version (custom server) Build Status

概览

这个库旨在简化将值传递到如 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 许可证下发布。