PackageTrack
Sign in Get early access

minishlink/web-push

Web Push library for PHP

v11.0.0 17M downloads/mo #525 most downloaded on Packagist web-push-libs/web-push-php

What this package is like to depend on

Last release 1 months ago

23 Jul 2026

Release timing varies

gaps range from 3 weeks to 1.1 years

Rarely documented

notes for 10 of 54 stable releases

Nothing withdrawn

no release was ever pulled

11 years old

56 releases · first in 2015

8 releases in the last 12 months

see the full history below

Release timeline

56 releases · Nov 2015 to Jul 2026
2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 56
  1. v11.0.0 23 Jul 2026
    Release notes

    Migration

    WebPush now depends on standard interfaces instead of Guzzle directly. Any PSR-18 client now works.

    If you already have guzzlehttp/guzzle installed and call new WebPush(...) with no client-related arguments: no code changes needed. php-http/discovery auto-detects Guzzle and uses it. If you use flushPooled(), you now need one extra package, see below.

    If you pass the old $timeout / $clientOptions constructor arguments, you must update that call.

    Constructor signature change

    Before:

    public function __construct(
          array $auth = [],
          array $defaultOptions = [],
          ?int $timeout = 30,
          array $clientOptions = [],
          ?LoggerInterface $logger = null
    )

    After:

    public function __construct(
          array $auth = [],
          array $defaultOptions = [],
          ?ClientInterface $client = null,          // PSR-18
          ?RequestFactoryInterface $requestFactory = null, // PSR-17
          ?StreamFactoryInterface $streamFactory = null,   // PSR-17
          ?HttpAsyncClient $asyncClient = null,     // HTTPlug, optional, only needed for flushPooled()
          ?LoggerInterface $logger = null
    )

    $timeout and $clientOptions are replaced by configuring your client instance directly:

    Before:

    $timeout = 20;
    $clientOptions = [\GuzzleHttp\RequestOptions::ALLOW_REDIRECTS => false];
    $webPush = new WebPush([], [], $timeout, $clientOptions);

    After:

    $client = new \GuzzleHttp\Client([
          'timeout' => 20,
          \GuzzleHttp\RequestOptions::ALLOW_REDIRECTS => false,
    ]);
    $webPush = new WebPush([], [], $client);

    If you were relying on the default (new WebPush()), nothing changes.

    Keeping flushPooled() concurrency

    flushPooled() used Guzzle's Pool for real concurrent requests. PSR-18 has no concept of concurrency, so this now requires an HTTPlug async client: composer require php-http/guzzle7-adapter (if you use guzzle)

    The requestConcurrency option is no longer used, HTTPlug async clients manage their own concurrency (e.g. php-http/guzzle7-adapter delegates to Guzzle's MultiCurl handler).

    Using a different PSR-18 client entirely

    composer remove guzzlehttp/guzzle
    composer require symfony/http-client nyholm/psr7
    $psr18Client = new \Symfony\Component\HttpClient\Psr18Client();
    $webPush = new WebPush([], [], $psr18Client, $psr18Client, $psr18Client);

    For concurrent sending with a non-Guzzle stack (flushPooled), check the php-http adapter list for an HTTPlug adapter matching your client; otherwise use flush().

    What's Changed

    • (breaking) feat: use PSR-18 http interface (or http async) by @Minishlink in #458
    • Cast TTL option to string in headers to avoid Guzzle deprecation warnings by @maciek-szn in #456

    New Contributors

    Full Changelog: v10.1.0...v11.0.0

    Open source →
  2. v10.1.0 28 May 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v10.0.3...v10.1.0

    Open source →
  3. v10.0.3 09 Mar 2026
    Release notes

    What's Changed

    • fix: base 64 errors introduced in v10.0.2. See #449

    Full Changelog: v10.0.2...v10.0.3

    Open source →
  4. v10.0.2 05 Mar 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v10.0.1...v10.0.2

    Open source →
  5. v10.0.1 15 Dec 2025
    Release notes

    What's Changed

    • feat: convert contentEncoding to typesafe enum by @Rotzbua in #423

    Full Changelog: v10.0.0...v10.0.1

    Open source →
  6. v10.0.0 12 Dec 2025
    Release notes

    What's Changed

    ⚠️ Breaking changes

    • Drop support for PHP 8.1

    PRs

    Full Changelog: v9.0.4...v10.0.0

    Open source →
  7. v9.0.4 10 Dec 2025
    Release notes

    What's Changed

    Full Changelog: v9.0.3...v9.0.4

    Open source →
  8. v9.0.3 13 Nov 2025
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v9.0.2...v9.0.3

    Open source →
  9. v9.0.2 29 Jan 2025
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v9.0.1...v9.0.2

    Open source →
  10. v9.0.1 30 Jul 2024
    Release notes

    What's Changed

    • Fix exception in rejected callback for HTTP connection errors when using flushPooled by @sleptor in #410

    Full Changelog: v9.0.0...v9.0.1

    Open source →
  11. v9.0.0 08 Jul 2024

    Nothing published for this version

  12. v9.0.0-rc2 18 Jun 2024 pre-release

    Nothing published for this version

  13. v9.0.0-rc1 04 Mar 2024 pre-release

    Nothing published for this version

  14. v8.0.0 10 Jan 2023

    Nothing published for this version

  15. v7.0.0 29 Mar 2022

    Nothing published for this version

  16. v6.0.7 22 Nov 2021

    Nothing published for this version

  17. v6.0.6 22 Nov 2021

    Nothing published for this version

  18. v6.0.5 08 Apr 2021

    Nothing published for this version

  19. v6.0.4 08 Apr 2021

    Nothing published for this version

  20. v6.0.3 06 Nov 2020

    Nothing published for this version

  21. v6.0.2 29 Sep 2020

    Nothing published for this version

  22. v6.0.1 13 Sep 2020

    Nothing published for this version

  23. v6.0.0 02 Aug 2020

    Nothing published for this version

  24. v5.2.5 02 Aug 2020

    Nothing published for this version

  25. v5.2.4 23 Mar 2019

    Nothing published for this version

  26. v5.2.3 25 Feb 2019

    Nothing published for this version

  27. v5.2.2 23 Feb 2019

    Nothing published for this version

  28. v5.2.1 23 Feb 2019

    Nothing published for this version

  29. v5.2.0 23 Feb 2019

    Nothing published for this version

  30. v5.1.0 29 Nov 2018

    Nothing published for this version

  31. v5.0.0 27 Nov 2018

    Nothing published for this version

  32. v4.0.2 13 May 2018

    Nothing published for this version

  33. v4.0.1 12 Apr 2018

    Nothing published for this version

  34. v4.0.0 17 Mar 2018

    Nothing published for this version

  35. v3.0.2 17 Mar 2018

    Nothing published for this version

  36. v3.0.1 16 Mar 2018

    Nothing published for this version

  37. v3.0.0 16 Mar 2018

    Nothing published for this version

  38. v2.0.1 22 Nov 2017

    Nothing published for this version

  39. v2.0.0 12 Oct 2017

    Nothing published for this version

  40. v1.4.3 28 Jun 2017

    Nothing published for this version

  41. v1.4.2 11 May 2017

    Nothing published for this version

  42. v1.4.1 13 Mar 2017

    Nothing published for this version

  43. v1.4.0 11 Feb 2017

    Nothing published for this version

  44. v1.3.4 30 Nov 2016

    Nothing published for this version

  45. v1.3.3 23 Nov 2016

    Nothing published for this version

  46. v1.3.2 15 Nov 2016

    Nothing published for this version

  47. v1.3.1 11 Nov 2016

    Nothing published for this version

  48. v1.0.1 13 May 2016

    Nothing published for this version

  49. 0.2.2 20 Feb 2016

    Nothing published for this version

  50. 0.2.1 04 Dec 2015

    Nothing published for this version

  51. 0.2.0 03 Dec 2015

    Nothing published for this version

  52. 0.1.0 27 Nov 2015

    Nothing published for this version

  53. v1.3 08 Nov 2016

    Nothing published for this version

  54. v1.2 27 Oct 2016

    Nothing published for this version

  55. v1.1 28 Jul 2016

    Nothing published for this version

  56. v1.0 28 Apr 2016

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive