zitec / js-data-bundle
此包将信息从PHP传输到JS。
v1.0.0
2020-06-04 15:24 UTC
Requires
- php: >=7.4.0
- ext-json: *
- symfony/config: ^4.4
- symfony/dependency-injection: ^4.4
- symfony/event-dispatcher: ^4.4
- symfony/http-kernel: ^4.4
- symfony/property-access: ^4.4
- twig/twig: ^3.0
Requires (Dev)
- phpunit/phpunit: ^9.1
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。