ably/ably-php-laravel

Ably 实时 REST PHP 库的 Laravel 包装器

1.0.8 2022-09-15 12:41 UTC

This package is not auto-updated.

Last update: 2024-09-12 22:42:33 UTC


README

Latest Stable Version Total Downloads License

警告
如果您正在使用 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的一些功能

安装

使用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参考和更多示例。

发布流程

此库使用语义版本。对于每个版本,都需要执行以下操作

  1. ably-php中更新composer.json的依赖项到最新版本,提交此更改并推送到origin
  2. 为发布创建一个新分支,例如命名为release/1.0.0(其中1.0.0是要发布的版本,即新版本)。
  3. 运行github_changelog_generator来自动更新CHANGELOG。一旦完成CHANGELOG更新,手动更改Unreleased标题并将其链接到当前版本号,例如1.0.0。还要确保Full Changelog链接指向新版本标记而不是HEAD
  4. 提交生成的CHANGELOG.md文件。
  5. main创建一个PR。
  6. 一旦PR被批准,将其合并到main
  7. 添加标签并推送到origin,例如git tag 1.0.0 && git push origin 1.0.0
  8. 访问https://github.com/ably/ably-php-laravel/tags并为发布添加发布说明,包括对更改日志条目的链接。
  9. 访问https://packagist.org.cn/packages/ably/ably-php-laravel,登录Packagist,然后点击“更新”按钮。

许可

版权所有(c)2022 Ably Real-time Ltd,许可协议为Apache License,版本2.0。有关许可条款,请参阅LICENSE