floriangaerber / ably-php8
PHP ^8.0 的 ably/ably-php 的潜在不稳定的分支
Requires
- php: ^8.0
- ext-curl: *
- ext-openssl: *
Requires (Dev)
- phpunit/phpunit: ^9.5
Replaces
- ably/ably-php: 1.1.3
This package is auto-updated.
Last update: 2023-07-29 02:10:28 UTC
README
这是一个用于 www.ably.io 的 PHP REST 客户端库,该库是实时消息服务。此库目前针对的是 Ably 1.1 客户端库规范。您可以跳转到 '已知限制' 部分,查看此客户端库尚未支持的功能,或查看我们的客户端库 SDK 特性支持矩阵,以查看所有可用功能的列表。
支持的平台
此 SDK 支持 PHP 5.6 和 7.0+
我们对一系列 PHP 版本(这些版本将随着时间的推移而变化,但通常包括上游支持的版本)进行回归测试。请参阅 .travis.yml 了解目前进行 CI 测试的版本集。
我们乐于支持(并调查报告的任何兼容性问题)任何合理广泛使用的 PHP 版本。如果您发现任何兼容性问题,请在此存储库中 提出问题 或联系 Ably 客户支持 以获取建议。
已知限制
目前,此 SDK 只支持 Ably REST。但是,您可以使用 MQTT 适配器 使用 Python 实现 Ably 的实时功能。
此 SDK 与一些 Ably 功能 不兼容
功能 |
---|
在失败期间记住回退主机 |
MsgPack 二进制协议 |
文档
访问 https://www.ably.io/documentation 获取完整的 API 参考 和更多示例。
安装
通过 composer
客户端库作为 packagist 上的 composer 包 提供。如果您尚未安装 composer,您可以从 https://getcomposer.org.cn/ 获取它。
使用以下命令从 shell 安装 Ably:
$ composer require ably/ably-php --update-no-dev
然后简单地需要 composer 的自动加载器
require_once __DIR__ . '/vendor/autoload.php';
手动安装
从本存储库克隆或下载 Ably 并需要 ably-loader.php
require_once __DIR__ . '/ably-php/ably-loader.php';
使用 REST API
介绍
所有示例都假设已经按照以下方式创建了一个客户端和/或通道:
$client = new Ably\AblyRest('your.appkey:xxxxxx'); $channel = $client->channel('test');
向通道发布消息
$channel->publish('myEvent', 'Hello!'); // => true
查询历史记录
$messagesPage = $channel->history(); // => \Ably\Models\PaginatedResult $messagesPage->items[0]; // => \Ably\Models\Message $messagesPage->items[0]->data; // payload for the message $messagesPage->next(); // retrieves the next page => \Ably\Models\PaginatedResult $messagesPage->hasNext(); // false, there are no more pages
通道上的存在状态
$membersPage = $channel->presence->get(); // => \Ably\Models\PaginatedResult $membersPage->items[0]; // first member present in this page => \Ably\Models\PresenceMessage $membersPage->items[0]->clientId; // client ID of first member present $membersPage->next(); // retrieves the next page => \Ably\Models\PaginatedResult $membersPage->hasNext(); // false, there are no more pages
查询存在历史记录
$presencePage = $channel->presence->history(); // => \Ably\Models\PaginatedResult $presencePage->items[0]; // => \Ably\Models\PresenceMessage $presencePage->items[0]->clientId; // client ID of first member $presencePage->next(); // retrieves the next page => \Ably\Models\PaginatedResult
生成令牌和令牌请求
$tokenDetails = $client->auth->requestToken(); // => \Ably\Models\PresenceMessage $tokenDetails->token; // => "xVLyHw.CLchevH3hF....MDh9ZC_Q" $client = new Ably\AblyRest( $tokenDetails->token ); // or $client = new Ably\AblyRest( array( 'tokenDetails' => $tokenDetails ) ); $token = $client->auth->createTokenRequest(); // => {"id" => ..., // "clientId" => null, // "ttl" => 3600, // "timestamp" => ..., // "capability" => "{\"*\":[\"*\"]}", // "nonce" => ..., // "mac" => ...}
获取应用的统计信息
$statsPage = client->stats(); // => \Ably\Models\PaginatedResult $statsPage->items[0]; // => \Ably\Models\Stats $statsPage->next(); // retrieves the next page => \Ably\Models\PaginatedResult
获取Ably服务时间
$client->time(); // in milliseconds => 1430313364993
Laravel
如果你正在使用Laravel,你可能想查看ably-php-laravel包装器,这是一个具有Laravel特定辅助类的包装器。
支持、反馈和故障排除
请访问http://support.ably.io/以访问我们的知识库并寻求任何帮助。
您还可以查看社区报告的Github问题。
要查看Bundler最近版本的更改,请参阅CHANGELOG。
已知限制
- 此客户端库需要PHP版本5.4或更高版本
- 目前PHP客户端库中缺少对msgpack的支持,因为没有可用的稳定PHP msgpack库。
运行测试
客户端库使用Ably沙盒环境来部署应用程序并在该应用程序上运行测试。为了运行测试,您需要:
git clone https://github.com/ably/ably-php.git
cd ably-php
composer install
git submodule init
git submodule update
./vendor/bin/phpunit
贡献
- 将其Fork
- 创建您的功能分支(
git checkout -b my-new-feature
) - 提交您的更改(
git commit -am 'Add some feature'
) - 确保您已添加合适的测试,并且测试套件正在通过(运行
vendor/bin/phpunit
) - 将分支推送到远程(
git push origin my-new-feature
) - 创建一个新的Pull Request
发布流程
此库使用语义版本。对于每个版本,需要执行以下操作:
- 更新src/AblyRest.php中的版本号
- 运行
github_changelog_generator
来自动更新CHANGELOG。一旦完成CHANGELOG
的更新,请手动更改未发布
标题并链接到当前版本号,例如1.0.0
。同时确保完整变更日志
链接指向新的版本标签而不是HEAD
。 - 提交
- 添加标签并推送到远程仓库,例如
git tag 1.0.0 && git push origin 1.0.0
- 访问https://github.com/ably/ably-php/tags,并为该版本添加发布说明,包括指向变更日志条目的链接。
- 访问https://packagist.org.cn/packages/ably/ably-php,登录到Packagist,并点击“更新”按钮。
- 请记得为PHP Laravel库发布更新