farmatholin/segment-io-bundle

Segment.io PHP 库

安装次数: 236,257

依赖关系: 0

建议者: 0

安全性: 0

星星: 11

关注者: 2

分支: 13

开放问题: 0

类型:symfony-bundle

1.6.0 2024-01-30 10:50 UTC

This package is auto-updated.

Last update: 2024-09-09 15:54:27 UTC


README

此包包含用于分析的 segment.io 库

包含 segmentio/analytics-php

文档

大部分文档存储在本包的 Resources/doc 文件夹中

安装

通过 Packagist 安装包是最快、最简单的方法。以下是步骤:

步骤 1: Composer require

$ php composer.phar require "farmatholin/segment-io-bundle":"^1.3"

步骤 2: 在 kernel 中启用包(Symfony < 3.4)

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Farmatholin\SegmentIoBundle\SegmentIoBundle(),
        // ...
    );
}

就是这样!你现在可以使用 Segment.io 与 symfony2 一起使用了。

配置

所需的 segment 编写密钥

Symfony 4.X 或 5.X

# config/packages/segment_io.yaml

segment_io:
    write_key: "%env(SEGMENTIO_KEY)%"  # add your key
    guest_id: "guest" # default guest. Guest id for annotation Track and Page
    env: prod #default prod. Can be prod (sending to segment) and dev (not sending)
    data_residency: Oregon #default Oregon. Can be Oregon, Dublin, Signapore or Sydney. Overwritten by host option
    options:
        consumer: socket #default
        debug: false #default
        ssl: false #default
        max_queue_size: 10000 #default
        flush_at: 100 #default
        timeout: 0.5 #default
        filename: null #default
        host:  #default not set - uses segment default api

Symfony 2.X 或 3.X

# app/config/config.yml

    segment_io:
        write_key: "%your_key%" #add your key
        guest_id: "guest" # default guest. Guest id for annotation Track and Page
        env: prod #default prod. Can be prod (sending to segment) and dev (not sending)
        data_residency: Oregon #default Oregon. Can be Oregon, Dublin, Signapore or Sydney. Overwritten by host option
        options:
            consumer: socket #default
            debug: false #default
            ssl: false #default
            max_queue_size: 10000 #default
            flush_at: 100 #default
            timeout: 0.5 #default
            filename: null #default
            host: #default not set - uses segment default api.

数据驻留

Segment 允许使用 区域基础设施。如果您的 Segment 计划支持此功能,可以将 data_residency 选项设置为 OregonDublinSingaporeSydney。如果设置了 option.host 的值,则忽略 data_residency 设置,并使用 host 选项。

使用方法

从服务容器获取 segment_io.analytics 服务并开始使用它

$analytics = $this->get('segment_io.analytics');
$analytics->page([]);

或使用注解(页面和跟踪)

用户注解来自 TokenStorage。如果用户不存在,id 设置为 guest 或配置中的 'guest_id'

use Farmatholin\SegmentIoBundle\Configuration\Page;
use Farmatholin\SegmentIoBundle\Configuration\Track;

/**
     * @Route("/", name="homepage")
     *
     * @Page(
     *     name="index",
     *     category="page",
     *     properties={"foo":"bar"}
     * )
     * @Track(
     *     event="visit homepage",
     *     properties={"bar":"foo"},
     *     useTimestamp=true,
     *     context={"aa":"bb"}
     * )
     */
    public function indexAction(Request $request)
    {
        // your code
    }

或使用依赖注入

use Farmatholin\SegmentIoBundle\Util\SegmentIoProvider;
    
    /**
     * @Route("/", name="homepage", methods={"GET"})
     *
     * @param SegmentIoProvider $segmentIoProvider
     */
    public function index(SegmentIoProvider $segmentIoProvider) {
        $segmentIoProvider->track([
            'userId' => 123, // or 'guest' if not available
            'event' => 'visit homepage',
            'properties' => [
                'foo' => 'bar'
            ] 
        ]);
        $segmentIoProvider->flush();
        
        // your code
    }

参考 Segment.io analytics-php 库