litgroup / event-loop-bundle
该包已被 弃用 并不再维护。未建议替代包。
Symfony2 的 React EventLoop 集成。
v0.3.0
2014-06-30 15:09 UTC
Requires
- php: >=5.4.0
- react/event-loop: 0.4.*
- symfony/framework-bundle: ~2.3
Requires (Dev)
- phpunit/phpunit: 4.1.*@stable
This package is not auto-updated.
Last update: 2022-02-01 12:36:25 UTC
README
🚫 (该项目不再维护。)
此包将 react/event-loop 库集成到 Symfony 2。
安装
使用 Composer 安装 LitGroupEventLoopBundle。
"require": { "litgroup/event-loop-bundle": "1.0.x-dev" }
别忘了在 AppKernel 中注册该包
<?php // AppKernel.php class AppKernel extends Kernel { public function registerBundles() { $bundles = [ // ... new LitGroup\Bundle\EventLoopBundle\LitGroupEventLoopBundle(), ]; // ... return $bundles; } // ... }
配置
这次不需要配置。
基本用法
使用事件循环
该包提供一个名为 litgroup_event_loop
的基本循环服务,您可以用它进行注入或直接在您的应用程序中使用。
示例
/** @var \React\EventLoop\LoopInterface $loop */ $loop = $container->get('litgroup_event_loop'); $loop->run();
周期性服务
周期性服务 — 标记为 litgroup_event_loop.periodic
的服务,定义在依赖注入容器中。当循环运行时,这些服务将定期被调用。
标签有两个必需的属性
interval
— 调用之间的间隔;method
— 要调用的服务方法。
间隔可以设置为以双精度值表示的秒数,或设置为包含时间单位的字符串(例如 10ms
,1m
)。间隔不能少于 1ms。
字符串表示支持四个单位
ms
毫秒s
秒m
分钟h
小时
单位不能混合。
示例: 10s
, 15m
, 1.5h
周期性服务定义示例
服务类
<?php class PeriodicService { public function tick() { echo "Tick!"; } }
DIC 配置
<?xml version="1.0" encoding="UTF-8" ?> <container xmlns="https://symfony.com.cn/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://symfony.com.cn/schema/dic/services https://symfony.com.cn/schema/dic/services/services-1.0.xsd" > <services> <service id="periodic_service" class="PeriodicService"> <tag name="litgroup_event_loop.periodic" interval="1s" method="tick"/> </service> </services> </container>
现在,当事件循环运行时,将每秒调用 PeriodicService::tick()
。
许可证
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是基于合同、侵权或其他方式,无论这些责任是否与软件有关、软件的使用或其他方式。
请参阅 LICENSE 文件中的详细信息。