srkt/amplitude-php 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

srkt/amplitude-php

Composer 安装命令:

composer require srkt/amplitude-php

包简介

Amplitude PHP SDK

README 文档

README

PHP Composer

Multifunctional Amplitude REST API PHP SDK with PSR-7 and PSR-18 support (HTTP Request, Response and Client interfaces).

  • A simple interface for tracking your events and identities into Amplitude service.
  • Can send both single events (identities) and bunch of them.
  • Uses PSR-7 interfaces for requests and responses, PSR-18 for HTTP client. This allows you to utilize other PSR-18 compatible libraries SDK. Guzzle HTTP client used by default.
  • Supports Amplitude features: platform data, revenue data, etc.

Installing Amplitude PHP SDK

The recommended way to install SDK is through Composer.

composer require srkt/amplitude-php

Examples

There are two types of library usage: simple "one method call" and full featured OOP styled one.

Event tracking

Create client

// Create new Amplitude client
$client = new \Srkt\Amplitude\Client('your-api-key-goes-here');

Simple

// Simple event tracking:
$client->log(
    'user123',
    'testEventType',
    ['eventProperty' => 'value'],
    ['userProperty' => 'value'],
    'deviceId'
); // PSR-7 Response

Full event object

// Full data event tracking
$event = new \Srkt\Amplitude\Model\Event('user1', 'registration');

// This is not full list of data setters, please check all Event class setters
$event
    ->setAppVersion('1.0.0')
    ->setCountry('USA') 
    ->setCity('New York')
    ->setRevenueData(new \Srkt\Amplitude\Model\RevenueData(10.00, 5.00, 2, 'product1', 'sell'))
    ->setLanguage('en')
    ->setDeviceId('device-id-1')
    ->setPlatformData(
        new \Srkt\Amplitude\Model\PlatformData('Moblie', 'Android', '11.0')
    )
    ->setEventProperties(['property' => 'value'])
    ->setUserProperties(new \Srkt\Amplitude\Model\UserProperties(['userProperty' => 'value']));

$client->logEvent($event); // PSR-7 Response

Event with no userId but with deviceId

// Event without userId tracking
$event = new \Srkt\Amplitude\Model\Event(null, 'registration', [], null, null, 'device-id1');
$client->logEvent($event); // PSR-7 Response

Multiple events in one request

$events = [
    new \Srkt\Amplitude\Model\Event('user1', 'registration'),
    new \Srkt\Amplitude\Model\Event('user1', 'addPhoto'),
    new \Srkt\Amplitude\Model\Event('user1', 'addInfo'),
];
$client->logEvents($events); // PSR-7 Response

User Identities tracking

Simple

$client = new \Srkt\Amplitude\Client('your-api-key-goes-here');
$identity = new \Srkt\Amplitude\Model\UserIdentity(
    'userId1',
    new \Srkt\Amplitude\Model\UserProperties(['userProperty' => 'value'])
);
$client->identifyUser($identity); // PSR-7 Response

Full identity object

// Full data identity tracking
$identity = new \Srkt\Amplitude\Model\UserIdentity(
    'userId1',
    new \Srkt\Amplitude\Model\UserProperties(['userProperty' => 'value'])
);

// This is not full list of data setters, please check all Event class setters
$identity
    ->setDeviceId('device-id')
    ->setLanguage('en')
    ->setStartVersion('1.0.0')
    ->setPlatformData()
    ->setPaying('paying')
    ->setPlatformData(
        new \Srkt\Amplitude\Model\PlatformData('Moblie', 'Android', '11.0')
    );

$client->identifyUser($identity); // PSR-7 Response

Multiple identities in one request

$identities = [
    new \Srkt\Amplitude\Model\UserIdentity('user1', new \Srkt\Amplitude\Model\UserProperties(['property' => 'value'])),
    new \Srkt\Amplitude\Model\UserIdentity('user2', new \Srkt\Amplitude\Model\UserProperties(['property' => 'value'])),
    new \Srkt\Amplitude\Model\UserIdentity('user3', new \Srkt\Amplitude\Model\UserProperties(['property' => 'value'])),
];
$client->identifyUsers($identities); // PSR-7 Response

Advanced usage

You can change default Guzzle HTTP client to any other supports PSR-18 interface, or you can setup Guzzle client options.

$client = new \Srkt\Amplitude\Client('your-api-key-goes-here');
// Client adapter used for Guzzle versions prior to 7.0.0 
$httpClient = new \Srkt\Amplitude\Http\Client\GuzzlePsr18ClientAdapter([
    'timeout'         => 0,
    'allow_redirects' => false,
    'proxy'           => '192.168.16.1:10'
]);
$client->setHttpClient($httpClient);

srkt/amplitude-php 适用场景与选型建议

srkt/amplitude-php 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.21k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 06 月 16 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「analytics」 「sdk」 「tracking」 「amplitude」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 srkt/amplitude-php 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 srkt/amplitude-php 我们能提供哪些服务?
定制开发 / 二次开发

基于 srkt/amplitude-php 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 1.21k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 12
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-06-16