lsv/pusher-bundle

symfony 的 pusher.com 扩展包

v0.1.0 2016-10-28 20:49 UTC

This package is auto-updated.

Last update: 2024-08-27 21:33:23 UTC


README

symfony 的 Pusher.com 扩展包

安装

composer require lsv/pusher-bundle

将扩展包添加到 AppKernel

# app/AppKernel.php
public function registerBundles()
{
    $bundles = [
        new Lsv\PusherBundle\LsvPusherBundle(),
    ];
}

添加所需配置

lsv_pusher:
    app_id: <Your app key>
    key: <Your app id>
    secret: <Your app secret>

更多信息请参考 配置部分

使用方法

控制器示例

在控制器中,您可以使用

$this->get('lsv_pusher.pusher')->trigger('channel', 'event-name', $data);

这将是一个 Lsv\PusherBundle\Service\PusherService 对象,它扩展了 pusher/pusher-php-server 中的 \Pusher

我扩展原始版本的原因是,无法向原始版本添加中间件,因此我在自己的版本中添加了它们

由于我的服务扩展了原始版本,因此您可以像在 https://github.com/pusher/pusher-http-php 中一样使用所有相同的方法

您的服务

在您的服务中,您可以将以下内容添加到参数中

services:
    your-service:
         class: YourClass
         arguments: ["@lsv_pusher.pusher"]

并在您的 YourClass 中

use Lsv\PusherBundle\Service\PusherService

class YourClass
{
    public function __construct(PusherService $pusher)
    {
    }
}

配置

即使 debug 为 false,也会发送所有事件,并将信息发送到 symfony 分析器

完整配置示例

lsv_pusher:
    app_id: 123
    key: 123
    secret: 123
    timeout: 20
    encrypted: true
    cluster: eu
    curl_options:
        - CURLOPT_IPRESOLVE: CURL_IPRESOLVE_V4
    debug: true

curl_options 信息

如果您将常量添加到 curl_options 中,如下所示

lsv_pusher:
    curl_options:
        - CURLOPT_IPRESOLVE: CURL_IPRESOLVE_V4
        - CURLOPT_SSL_VERIFYSTATUS: false

该常量将被转换为对应的整数

Symfony 3.2+

在 Symfony 3.2+ 中,您可以这样做

lsv_pusher:
    curl_options:
        - !php/const:CURLOPT_IPRESOLVE: !php/const:CURL_IPRESOLVE_V4
        - !php/const:CURLOPT_SSL_VERIFYSTATUS: false

事件

所有事件类都在 Lsv\PusherBundle\Event 命名空间中

在所有事件类中,您可以使用 NAME 常量来获取触发的事件名称,例如 Lsv\PusherBundle\Event\TriggerBatchEvent::NAME

Symfony 分析器

所有响应请求都会显示在分析器中,如下所示

Symfony profiler example

命令

提供了一个命令用于测试 Pusher.cosend,以触发测试

lsv:pusher:test

也可以添加可选选项

许可协议

MIT 许可证 (MIT)

版权所有 (c) 2016 Martin Aarhof

在此,任何人免费获得本软件及其相关文档副本(“软件”),可以不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许获得本软件的人这样做,但必须遵守以下条件

上述版权声明和本许可声明应包含在软件的副本或实质性部分的副本中。

本软件按“现状”提供,不提供任何形式的保证,无论是明示的、暗示的还是法定的,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论是基于合同、侵权或其他方式,源于、因或与该软件或其使用或其他方式有关。