haixin/getui 问题修复 & 功能扩展

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

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

haixin/getui

Composer 安装命令:

composer require haixin/getui

包简介

getui for laravel

关键字:

README 文档

README

Latest Version on Packagist Total Downloads Build Status StyleCI

路线图

略。。。

安装

$ composer require haixin/getui

编辑 config/surl.php

artisan vendor:publish --provider="HaiXin\GeTui\GeTuiServiceProvider"

使用

$pusher = resolve('getui');

token

$token = $pusher->getToken();

// token缓存的 key
$token->key();

// 可以更换缓存的 key
$token->key($key);

// 获取 token
$token->get(); 

// 销毁 token (请求接口销毁)
$token->destroy(); 

// 非强制的话,重新从缓存加载。缓存不存在请求接口;强制的话直接请求接口
$token->refresh($force = false); 

alias

$alias = $pusher->alias;

// 设备与别名绑定;单一绑定
$alias->bind(cid,alias));

// 设备与别名绑定;批量绑定
$alias->bind([cid => alias]);

// 根据设备查询别名
$alias->device(cid);

// 解除设备与别名的绑定关系
$alias->unbind(cid,alias);
$alias->unbind([cid => alias]);

// 解除所有与该别名绑定的设备
$alias->destroy([cid => alias]);

tags

$tags = $pusher->tags;

// 给指定设备绑定一批标签
$tags->single(cid, [tag1,tag2,tag3,...]);

// 一批设备绑定相同的一个标签
$tags->more(tag,[device1,device2,device3,...]);

// 一批设备解绑一个标签(指定设备解绑指定标签)
$tags->unbind(tag,[device1,device2,device3,...]);

user

$user = $pusher->user;

$user->count(\HaiXin\GeTui\Helper\Filter $filter);
// 查询用户信息
$user->detail(device1,device2,device3,...); 
$user->detail([device1,device2,device3,...]); 

// 查询用户状态
$user->state(device1,device2,device3,...); 
$user->state([device1,device2,device3,...]); 

// 加入黑名单
$user->black(device1,device2,device3,...); 
$user->black([device1,device2,device3,...]); 

// 移除黑名单
$user->unblack(device1,device2,device3,...); 
$user->unblack([device1,device2,device3,...]);

// 根据设备查询用户标签
$user->tags(device); 

// 设置角标
$user->badge(badge, [device1,device2,device3,...]); 

report

$report = $pusher->report;

// 根据任务编号查询任务详情
$report->task(device1,device2,device3,...); 

// 根据任务编号查询任务详情
$report->task([device1,device2,device3,...]);

// 根据任务组名查询任务详情
$report->group(group); 

// 指定日期的推送数据
$report->day('2020-01-01'); 

// 今日已推送与剩余可用推送量
$report->remainder(); 

// 指定日期用户数据
$report->user('2020-01-01'); 

// 近24小时在线用户统计
$report->online();

task

$task =$pusher->task;

// 停止任务
$task->stop(task);

// 定时任务状态
$task->state(task);

// 删除定时任务状态
$task->destroy(task);

// 指定任务下某设备的进度
$task->progress(device,task);

filter

$filter = new \HaiXin\GeTui\Helper\Filter();

// 仅支持以下 4种方式
// 'phone'=> 'phone_type',
// 'region' => 'region',
// 'portrait' => 'portrait',
// 'tag'=> 'custom_tag',
$filter->where('phone','ios')// and
 ->where('phone',['ios','android'])
 ->whereOr('phone','ios')// or
 ->whereNot('phone','ios')// not
 ->wherePhone('ios');// and

message

$message = $pusher->message();

$message->title();
$message->body();
...
$pusher->message($message);

use HaiXin\GeTui\Helper\Message;
$pusher->message(function(Message $message){
  $message->title();
  $message->body();
  ...
});

channel

$channel = $pusher->channel();

$channel->title();
$channel->body();
...
$pusher->channel($channel);

use HaiXin\GeTui\Helper\Channel;
$pusher->channel(function(Channel $channel){
  $channel->title();
  $channel->body();
  ...
});

audience

$audience = $pusher->audience();

$audience->device($device);
$pusher->audience($audience);

use HaiXin\GeTui\Helper\Audience;
$pusher->audience(function(Audience $audience){
	$audience->device($device);
  ...
});

###broadcast

$broadcast = $pusher->broadcast;

// 推送给全部用户
$broadcast->all->extras($extras)
  ->title($title)
  ->body($body)
  ->submit();
  
// 推送给指定标签的用户
$broadcast->tags->extras($extras)
  ->title($title)
  ->body($body)
  ->audience('标签','tags')
  ->submit();

// 推送给符合筛选条件的用户
$broadcast->filter->extras($extras)
  ->title($title)
  ->body($body)
  ->audience(\HaiXin\GeTui\Helper\Filter $filter)
  ->submit(); 

group

$group = $pusher->group;

// 预创建消息
$task = $group->create->title('批量推')
  ->body('批量推')
  ->extras($extras)
  ->submit(); 

// 推送给指定设备
$group->device->audience([device1,device2,device3])
  ->task(task)
  ->submit(); 

// 推送给指定别名
group->alias->audience([device1,device2,device3])
  ->task(task)
  ->submit(); 

single

$single = $pusher->single;

// 根据设备单推
$single->device->audience->device(device)
  ->title(title)
  ->body(body)
  ->extras(extras)
  ->submit(); 

// 根据别名单推
$single->alias->audience->device(device)
  ->title(title)
  ->body(body)
  ->extras(extras)
  ->submit(); 

pipeline

$pipeline = $pusher->pipeline;

// 批量单推给设备
$device = $pipeline->device;
for($index = 0; $index <= 100; ++$index){
$device->audience(device)
 ->title("title{$index}")
 ->body("body{$index}")
 ->delay();
}
$device->submit(); 

// 批量单推给别名
$alias = $pipeline->alias;
for($index = 0; $index <= 100; ++$index){
$alias->audience(alias)
 ->title("title{$index}")
 ->body("body{$index}")
 ->delay();
}
$alias->submit(); 

更新日志

更新日志

haixin/getui 适用场景与选型建议

haixin/getui 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 21 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 07 月 13 日, 在 PHP 生态内属于活跃度较高的组件。

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

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

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

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-07-13