ably / ably-php-laravel
Ably 实时 REST PHP 库的 Laravel 包装器
Requires
- php: ^7.2 || ^8.0
- ably/ably-php: ~1.1.9
- laravel/framework: >=6.0.0
Requires (Dev)
- orchestra/testbench: 4.13.0
- phpunit/phpunit: ^8.0.0
README
警告
如果您正在使用 Laravel 并希望支持 实时广播和事件,建议使用 ably/laravel-broadcaster。
Ably 是一个平台,能够实时同步数字体验。无论是参加虚拟场馆的活动,接收实时金融信息,还是监控实时的汽车性能数据,消费者都期望作为标准获得实时数字体验。Ably 提供一系列 API,以实时为全球 80 个国家的 2.5 亿多台设备构建、扩展和交付强大的数字体验。像 Bloomberg、HubSpot、Verizon 和 Hopin 这样的组织都依赖于 Ably 的平台,以减轻全球范围内业务关键实时数据同步不断增加的复杂性。有关更多信息,请参阅 Ably 文档。
这是一个用于 Ably PHP 库的简单 Laravel 包装器/桥梁。它提供了一种 Facade 和一个可注入的 AblyService,两者都作为单例 Ably 实例的包装器。实例从您的配置文件或环境变量中自动获取其参数。您还可以使用 AblyFactory 使用(可选的)自定义参数创建新的 Ably 实例。
PHP 客户端库目前针对的是 Ably 1.1 客户端库规范。您可以跳转到 '已知限制' 部分,查看 PHP 客户端库尚未支持的功能,或者 查看我们的客户端库 SDK 功能支持矩阵,以查看所有可用功能的列表。
支持的平台
此 SDK 支持 PHP 7.2+ 和 8.0
我们对一系列 PHP 版本进行回归测试(这些版本将随着时间的推移而变化,但通常包括上游支持的版本)。请参阅 travis 配置,了解目前正在接受 CI 测试的版本集。
我们将乐意支持任何合理广泛使用的 PHP 版本,并调查报告中出现的问题。如果您发现任何兼容性问题,请 在此存储库中提出问题 或 联系 Ably 客户支持 以获取建议。
注意
如果您正在使用 Laravel 并希望支持 实时广播和事件,您可能想看看 laravel-broadcaster。
已知限制
-
目前,此 SDK 仅支持 Ably REST。但是,如果您想使用 PHP 订阅事件,可以使用 MQTT 适配器 实现在 PHP 中的 Ably 的实时功能。
-
这个包装器的使用场景有限,建议大多数情况下使用laravel-broadcaster。
此SDK不兼容Ably的一些功能
安装
使用Composer将此包添加到您的项目中
composer require ably/ably-php-laravel
在config/app.php
中将服务提供者添加到providers
数组中。
Ably\Laravel\AblyServiceProvider::class
可选地,在config/app.php
中将外观引用添加到aliases
数组中。
'Ably' => Ably\Laravel\Facades\Ably::class
配置
添加服务提供者后,运行以下命令以让Laravel为您设置配置文件。
php artisan vendor:publish
更新创建的文件config/ably.php
,使用您的密钥或其他选项。您还可以使用名为ABLY_KEY
的环境变量设置密钥。
用法
外观
外观始终返回一个单例实例,该实例使用配置文件中定义的选项创建。AblyRest类上可用的任何方法都可通过外观访问。请注意,必须像函数一样调用属性(即Ably::auth()
),这是PHP的限制。
use Ably; echo Ably::time(); // 1467884220000 $token = Ably::auth()->requestToken([ 'clientId' => 'client123', ]); // Ably\Models\TokenDetails Ably::channel('testChannel')->publish('testEvent', 'testPayload', 'testClientId');
依赖注入
您可以使用Ably\Laravel\AblyService
代替外观,它作为使用默认选项创建的AblyRest单例实例的1:1包装器。 Ably\Laravel\AblyFactory
允许您使用(可选的)自定义选项实例化新的AblyRest实例。
use Ably\Laravel\AblyService; use Ably\Laravel\AblyFactory; function ablyExamples(AblyService $ably, AblyFactory $ablyFactory) { echo $ably->time(); // 1467884220000 echo $ably->auth->clientId; // null $tokenDetails = $ably->auth->requestToken([ 'clientId' => 'client123', ]); // Ably\Models\TokenDetails $ably->channel('testChannel')->publish('testEvent', 'testPayload', 'testClientId'); $ablyClient = $ablyFactory->make([ 'tokenDetails' => $tokenDetails ]); echo $ablyClient->auth->clientId; // 'client123' }
文档
请访问https://www.ably.com/docs以获取完整的API参考和更多示例。
发布流程
此库使用语义版本。对于每个版本,都需要执行以下操作
- 在ably-php中更新composer.json的依赖项到最新版本,提交此更改并推送到
origin
。 - 为发布创建一个新分支,例如命名为
release/1.0.0
(其中1.0.0
是要发布的版本,即新版本)。 - 运行
github_changelog_generator
来自动更新CHANGELOG。一旦完成CHANGELOG
更新,手动更改Unreleased
标题并将其链接到当前版本号,例如1.0.0
。还要确保Full Changelog
链接指向新版本标记而不是HEAD
。 - 提交生成的CHANGELOG.md文件。
- 对
main
创建一个PR。 - 一旦PR被批准,将其合并到
main
。 - 添加标签并推送到origin,例如
git tag 1.0.0 && git push origin 1.0.0
。 - 访问https://github.com/ably/ably-php-laravel/tags并为发布添加发布说明,包括对更改日志条目的链接。
- 访问https://packagist.org.cn/packages/ably/ably-php-laravel,登录Packagist,然后点击“更新”按钮。
许可
版权所有(c)2022 Ably Real-time Ltd,许可协议为Apache License,版本2.0。有关许可条款,请参阅LICENSE。