NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #231 most downloaded on Packagist
Library for interacting with the Pusher REST API
Last release 2 months ago
07 Aug 2026
Release timing varies
gaps range from 2 weeks to 1.4 years
Nearly every release is documented
notes for 50 of 53 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
58 releases · first in 2012
[Added] Support for Guzzle 8 ( #406 , thanks @GrahamCampbell )
[Fixed] Fix PSR-3 logger context type in webhook error handling (null → [])
One column per quarter.
PHP 8.4 Support by @ejunker in #396
Bump supported versions to include PHP8.2, 8.3
[CHANGED] Describe your change here. Look at CHANGELOG.md to see the format.
[Fixed] Timeout option is propagated to guzzle client
[Fixed] Include socket_id in batch trigger if included.
[FIXED] composer.phar file removed from package
[FIXED] authenticateUser returns correct auth value
[CHANGED] explicit support for 8.1
[DEPRECATED] socketAuth and presenceAuth in favour of authorizeChannel and authorizePresenceChannel
authenticateUser, authorizeChannel and authorizePresenceChannelsendToUser and sendToUserAsyncterminateUserConnections and terminateUserConnectionsAsyncget_object_vars() error on /src/Pusher.phpsocketAuth and presenceAuth in favour of authorizeChannel and authorizePresenceChannelmake_request and make_batch_request that were exposed as public[CHANGED] Add psr/log v2.0 and v3.0 compatibility
[FIXED] Infinite recursion in presence_auth.
presence_auth.[DEPRECATED] get_channel_info, get_channels, socket_auth, presence_auth in favour of camelCased versions
get_channel_info, get_channels, socket_auth, presence_auth in favour of camelCased versionsget_users_info in favour of getPresenceUsersensure_valid_signature in favour of verifySignature$app_id parameter of the Pusher() object to string (int was possible).[ADDED] triggerAsync and triggerBatchAsync using the Guzzle async interface.
[CHANGED] Use type hints where possible (mixed type not available in PHP7).
[CHANGED] internal HTTP client to Guzzle
curl_options from options[CHANGED] Ensure version in Pusher.php is bumped on release.
[CHANGED] Add release automation actions.
[FIXED] Notice raised due to reference to potentially missing object property in trigger method
trigger method[CHANGED] The methods that make HTTP requests now throw an ApiErrorException instead of returning false for non-2xx responses
ApiErrorException instead of returning false for non-2xx responsestrigger now accepts a $params associative array instead of a $socket_id as the third parametertrigger and triggerBatch request via an info parameterdebug parameter from methods that make HTTP requests and from the constructor options* [ADDED] Support for PHP 8.
[FIXED] Errors in the failure path of get_... methods revealed by stricter type checking in PHP7.4
get_... methods revealed by stricter type checking in PHP7.4No functional change, previous release was only partially successful
[DEPRECATED] option encryption_master_key
encryption_master_key_base64encryption_master_key* [ADDED] Support for PHP 7.4.
[ADDED] path configuration option.
path configuration option.[REMOVED] Support for PHP 5.x, PHP 7.0 and HHVM.
* [ADDED] Support for PHP 7.3.
* [ADDED] get_users_info method.
get_users_info method.[FIXED] PHP Notice for Undefined socket_id in triggerBatch
socket_id in triggerBatch[ADDED] Support for End-to-end encrypted channels for triggerbatch
[DEPRECATED] Renamed encrypted option to useTLS - encrypted will still work!
encrypted option to useTLS - encrypted will still work!Nothing published for this version
[ADDED] This release adds Webhook validation as well as a data structure to store Webhook payloads.
[FIXED] Non zero indexed arrays of channels no longer get serialized as an object.
[ADDED] PSR-3 logger compatibility.
[FIXED] Insufficient check for un-initialized curl resource.
[CHANGED] Info messages are now prefixed with INFO and errors are now prefixed with ERROR.
[NEW] Added namespaces (thanks @vinkla).
[FIXED] Log the curl error in more circumstances
Nothing published for this version
Nothing published for this version
[FIXED] Check for correct status code when POSTing to native push notifications API.
[ADDED] support for publishing push notifications on up to 10 interests.
[REMOVED] Native push notifications payload validation in the client.
Nothing published for this version
Nothing published for this version
[FIXED] DDN and Native Push endpoints were not assembled correctly.
[NEW] Native push notifications
[CHANGED] One curl instance per Pusher instance
[FIXED] Presence data could not be submitted after the style changes
[ADDED] Support for batch events
[ADDED] A new cluster option for the Pusher constructor.
cluster option for the Pusher constructor.[FIXED] Channel name and socket_id values are now validated.
…and other additional parameters are now deprecated.
new Pusher($app_key, $app_secret, $app_id, $options) - The $options parameter
has been added as the forth parameter to the constructor and other additional
parameters are now deprecated.[NEW] $pusher->trigger can now take an array of channel names as a first parameter to allow the same event to be published on multiple channels.
$pusher->trigger can now take an array of channel names as a first parameter to allow the same event to be published on multiple channels.$pusher->get generic function can be used to make GET calls to the REST API$pusher->set_logger to allow internal logging to be exposed and logged in your own logs.[CHANGED] Debug response from $pusher->trigger call is now an associative array in the form array( 'body' => '{String} body text of response', 'status
$pusher->trigger call is now an associative array in the form array( 'body' => '{String} body text of response', 'status' => '{Number} http status of the response' )Your coding agent can read these notes before it upgrades. Set up the MCP server →