2017 © Pedro Peláez
 

library ably-php-laravel

Ably realtime REST PHP library wrapper for Laravel

image

ably/ably-php-laravel

Ably realtime REST PHP library wrapper for Laravel

  • Wednesday, December 20, 2017
  • by bladeSk
  • Repository
  • 6 Watchers
  • 5 Stars
  • 3,683 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 2 Open issues
  • 6 Versions
  • 23 % Grown

The README.md

Ably PHP Laravel Wrapper

Latest Stable Version Total Downloads License, (*1)

Warning If you're using Laravel and want to support realtime broadcasting and events, it is recommended to use ably/laravel-broadcaster instead., (*2)

Ably is the platform that powers synchronized digital experiences in realtime. Whether attending an event in a virtual venue, receiving realtime financial information, or monitoring live car performance data – consumers simply expect realtime digital experiences as standard. Ably provides a suite of APIs to build, extend, and deliver powerful digital experiences in realtime for more than 250 million devices across 80 countries each month. Organizations like Bloomberg, HubSpot, Verizon, and Hopin depend on Ably’s platform to offload the growing complexity of business-critical realtime data synchronization at global scale. For more information, see the Ably documentation., (*3)

This is a simple Laravel wrapper / bridge for the Ably PHP library. It provides a Facade and an injectable AblyService that both act as a wrapper for a singleton Ably instance. The instance gets its parameters automatically from your config file or environment variables. You can also use AblyFactory for creating new Ably instances with (optional) custom parameters., (*4)

The PHP client library currently targets the Ably 1.1 client library specification. You can jump to the 'Known Limitations' section to see the features the PHP client library does not yet support or view our client library SDKs feature support matrix to see the list of all the available features., (*5)

Supported Platforms

This SDK supports PHP 7.2+ and 8.0, (*6)

We regression-test the library against a selection of PHP versions (which will change over time, but usually consists of the versions that are supported upstream). Please refer to the travis config for the set of versions that currently undergo CI testing., (*7)

We'll happily support (and investigate reported problems with) any reasonably-widely-used PHP version. If you find any compatibility issues, please do raise an issue in this repository or contact Ably customer support for advice., (*8)

Note

If you're using Laravel and want to support realtime broadcasting and events, you may want to check out laravel-broadcaster., (*9)

Known Limitations

  • Currently, this SDK only supports Ably REST. However, if you want to subscribe to events in PHP, you can use the MQTT adapter to implement Ably's Realtime features in PHP., (*10)

  • This wrapper has limited use-cases and laravel-broadcaster is recommended for most cases., (*11)

This SDK is not compatible with some of the Ably features:, (*12)

Feature
Remember fallback host during failures
MsgPack Binary Protocol

Installation

Add this package to your project, with Composer, (*13)

composer require ably/ably-php-laravel

Add the service provider in config/app.php to the providers array., (*14)

Ably\Laravel\AblyServiceProvider::class

Optionally add a reference to the facade in config/app.php to the aliases array., (*15)

'Ably' => Ably\Laravel\Facades\Ably::class

Configuration

After adding the service provider, run the following command to have Laravel set up a configuration file for you., (*16)

php artisan vendor:publish

Update the created file config/ably.php with your key or other options. You can also set the key using an environment variable named ABLY_KEY., (*17)

Usage

Facade

The facade always returns a singleton instance created with options defined in the config file. Any methods available on an AblyRest class are available through the facade. Note that properties must be called like functions (i.e. Ably::auth()), this is a limitation of PHP., (*18)

use Ably;

echo Ably::time(); // 1467884220000
$token = Ably::auth()->requestToken([ 'clientId' => 'client123', ]); // Ably\Models\TokenDetails
Ably::channel('testChannel')->publish('testEvent', 'testPayload', 'testClientId');

Dependency injection

You can use Ably\Laravel\AblyService instead of the facade, which acts as a 1:1 wrapper for an AblyRest singleton instance created with default options. Ably\Laravel\AblyFactory lets you instantiate new AblyRest instances with (optional) custom options., (*19)

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'
}

Documentation

Visit https://www.ably.com/docs for a complete API reference and more examples., (*20)

Release Process

This library uses semantic versioning. For each release, the following needs to be done:, (*21)

  1. Update the dependency on ably-php within composer.json to the latest version, commit this change and push to origin.
  2. Create a new branch for the release, named like release/1.0.0 (where 1.0.0 is what you're releasing, being the new version).
  3. Run github_changelog_generator to automate the update of the CHANGELOG. Once the CHANGELOG update has completed, manually change the Unreleased heading and link with the current version number such as 1.0.0. Also ensure that the Full Changelog link points to the new version tag instead of the HEAD.
  4. Commit generated CHANGELOG.md file.
  5. Make a PR against main.
  6. Once the PR is approved, merge it into main.
  7. Add a tag and push to origin such as git tag 1.0.0 && git push origin 1.0.0.
  8. Visit https://github.com/ably/ably-php-laravel/tags and add release notes for the release including links to the changelog entry.
  9. Visit https://packagist.org/packages/ably/ably-php-laravel, log in to Packagist, and click the "Update" button.

License

Copyright (c) 2022 Ably Real-time Ltd, Licensed under the Apache License, Version 2.0. Refer to LICENSE for the license terms., (*22)

The Versions

20/12 2017

dev-master

9999999-dev https://www.ably.io/

Ably realtime REST PHP library wrapper for Laravel

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

by Avatar ably

laravel rest messaging ably

20/12 2017

1.0.2

1.0.2.0 https://www.ably.io/

Ably realtime REST PHP library wrapper for Laravel

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

by Avatar ably

laravel rest messaging ably

16/05 2017

1.0.1

1.0.1.0 https://www.ably.io/

Ably realtime REST PHP library wrapper for Laravel

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

by Avatar ably

laravel rest messaging ably

08/03 2017

1.0.0

1.0.0.0 https://www.ably.io/

Ably realtime REST PHP library wrapper for Laravel

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

by Avatar ably

laravel rest messaging ably

09/08 2016

0.9.0

0.9.0.0 https://www.ably.io/

Ably-PHP wrapper for Laravel

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

by Avatar ably

laravel rest messaging ably

11/07 2016

0.8.0

0.8.0.0 https://www.ably.io/

Ably-PHP wrapper for Laravel

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

by Avatar ably

laravel rest messaging ably