zitec/js-data-bundle

此包将信息从PHP传输到JS。

安装: 17

依赖: 0

建议: 0

安全: 0

星标: 0

关注者: 3

分支: 1

开放问题: 0

类型:symfony-bundle

v1.0.0 2020-06-04 15:24 UTC

This package is auto-updated.

Last update: 2024-09-05 00:46:47 UTC


README

此包将信息从PHP传输到JavaScript。

如何使用

将Zitec\JSDataBundle\Service\DataHandler服务注入到您的控制器动作中,并添加数据。

<?php

namespace App\Controller;

use Zitec\JSDataBundle\Service\DataHandler;

class SimpleController
{
    public function indexAction(DataHandler $jsDataHandler)
    {
        $jsDataHandler->add('[Colors]', ['Red', 'Green', 'Blue']);

        return $this->render('index.html.twig');
    }
}

在模板中渲染数据。

<head>
    <head></head>
    <body>
        {{ zitec_js_data_get_all() }}
    </body>
</html>

包组件

DataCollectorInterface

代表所有JS数据收集器必须实现的接口。数据收集器不过是一个对象,其作用是从不同的组件收集数据。在某个特定点,收集到的数据将被检索到模板中,并分配给一个JS变量。基本上,数据收集器将信息从PHP传输到JS。

方法

  • getAll(): 获取收集到的数据。
  • add($path, $value): 在数据对象中给定路径设置值。
  • merge(array $data): 将给定数据集合并到现有集中。

DataCollectEvent

代表当第一次从数据处理器服务请求数据时触发的事件。其他包可以监听它以修改JS数据集。

DataHandler

一个服务,用于处理发送到客户端脚本的数据。应用程序中的其他包可以使用此服务添加自己的或修改JS数据集中的信息。

属性

  • dataCollector: 用于收集JS数据的数据收集器。
  • eventDispatcher: 事件分发器服务。
  • collected (bool): 标记是否从其他包收集了数据。

方法

  • add($path, $value): 向数据收集器添加给定值。
  • merge(array data): 将给定数据集合并到收集器中。
  • getAll(): 获取收集到的数据。
  • collect(): 通过分发数据收集事件从其他包收集数据。事件仅触发一次。

JSDataExtension

一个Twig扩展,通过函数将JS数据处理器在模板中可用,这些函数是其方法的代理。

属性

  • $dataHandler: 数据处理器服务。

方法

  • getFunctions()
    • zitec_js_data_add 调用 addFunction;
    • zitec_js_data_merge 调用 mergeFunction;
    • zitec_js_data_get_all 调用 getAllFunction;
  • getName(): 返回 ‘zitec_js_data_extensions’;
  • addFunction($path, $value): 调用 $dataHandler->add($path, $value);
  • mergeFunction(array $data): 调用 $dataHandler->merge($data);
  • getAllFunction($jsonEncodeOptions)
    • $jsonEncodeOptions: 默认值是 0;
    • 数据直接以JSON格式输出,因此您可以将其分配给一个JS变量。

许可证

此包受MIT许可证的约束。有关详细信息,请参阅LICENSE