pharmit/push 问题修复 & 功能扩展

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

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

pharmit/push

Composer 安装命令:

composer require pharmit/push

包简介

A push library for Laravel for both Google and Apple

README 文档

README

This package provides a Push service for both iOS and Android. It implements the iOS APS 2.0 (HTTP2) API, which requires a version of cURL with HTTP2 enabled. Contrary to other packages, this package can give feedback on failed push tokens.

Installation

To install the package, run the composer command:

composer require pharmit/push

Open app.php from your config directory and add to the providers array: 'PharmIT\Push\PushServiceProvider',

And add to the alias array: 'Push' => 'PharmIT\Push\PushServiceFacade',

Then publish the configuration by executing: php artisan vendor:publish

Server settings

Since the new Apple APS API uses HTTP2 and support for HTTP2 is not good, make sure you have a cURL compiled with HTTP2 support. This has been fully implemented in cURL version 7.43.0 and up. However cURL needs to be specifically compiled with this feature. When the used cURL does not have support for HTTP2, it will throw an (odd) SSL error when trying to send a push message.

Configuration

The package contains a configuration file called, "push.php". Listed below are the configuration settings.

throwExceptionOnError

When this variable is set to true all errors will throw an exception. Otherwise it will return the variable false. Defaults to true.

defaultEnvironment

This option controls which environment is selected by default, note that it falls back to this option when either the selected options cannot be cannot be found or is not present. When even the default environment cannot be found an exception will be thrown unless throwExceptionOnError is set to false.

apple

This array contains all configuration options for APS.

certificate

The path to the certificate relative to project root

environment

Either "production" or "development" determines which environment will be used when contacting Apple

passphrase

The passphrase for the certificate (optional)

topic

The application identifier, e.g. "nl.PharmIT.MedApp"

google

This array contains all configuration options for Google's GCM, which is currently just a single option.

apikey

The GCM API key

Usage

The following is a minimal code example for the Google API:

// Get an instance
$google = Push::getPushService('google')
            ->setMessageText('Hi, how are you?')
            ->addRecipient('<PUSH_ID>')
            ->addRecipients(['<PUSH_ID>','<PUSH_ID>']);

// Get all push ID's to which the push message has been sent
$success = $google->send();

// Get all push ID's to which the push message could <u>not</u> be sent.
$failed = $google->getFailedRecipients();

For APS the exact same pattern can be used, but the parameter given to the getPushService call, has to be 'apple' instead of 'google'.

pharmit/push 适用场景与选型建议

pharmit/push 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2.18k 次下载、GitHub Stars 达 6, 最近一次更新时间为 2016 年 03 月 15 日, 在 PHP 生态内属于活跃度较高的组件。

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

围绕 pharmit/push 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

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

GitHub 信息

  • Stars: 6
  • Watchers: 3
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2016-03-15