minishlink/web-push-bundle

Symfony Bundle around the WebPush library

Maintainers

👁 Minishlink

Package info

github.com/Minishlink/web-push-bundle

Homepage

Type:symfony-bundle

pkg:composer/minishlink/web-push-bundle

Statistics

Installs: 343 881

Dependents: 2

Suggesters: 0

Stars: 58

Open Issues: 3

v6.3.2 2025-12-12 09:21 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 98610702423f26e25c9c6340d8b1e35c8e7bde42

webnotificationspushWebPush


README

This bundle provides a simple integration of the WebPush library.

👁 SensioLabsInsight

Usage

Web Push sends notifications to endpoints which server delivers web push notifications as described in the Web Push API specification.

<?php
/** @var \Minishlink\WebPush\WebPush */
$webPush = $this->container->get('minishlink_web_push');

The bundle provides a new minishlink_web_push service that returns an instance of Minishlink\WebPush\WebPush.

For more info on what you can do with $webPush, check Minishlink/web-push.

Installation

  1. composer require minishlink/web-push-bundle
  2. Enable the bundle in your app/AppKernel.php.
<?php
// app/AppKernel.php

public function registerBundles()
{
 $bundles = array(
 // ...
 new Minishlink\Bundle\WebPushBundle\MinishlinkWebPushBundle(),
 // ...
 );
}

Configuration

Here is the default configuration, you may change it in your app/config/config.yml.

minishlink_web_push:
 VAPID:
 subject: https://yoursite.com # can be an URL or a mailto:
 publicKey: ~88 chars # uncompressed public key P-256 encoded in Base64-URL
 privateKey: ~44 chars # the secret multiplier of the private key encoded in Base64-URL
 pemFile: path/to/pem # if you have a PEM file and can link to it on your filesystem
 pem: pemFileContent # if you have a PEM file and want to hardcode its content
 ttl: 2419200 # Time to Live of notifications in seconds
 urgency: ~ # can be very-low / low / normal / high
 topic: ~ # default identifier for your notifications
 timeout: 30 # Timeout of each request in seconds
 automatic_padding: true # pad messages automatically for better security (against more bandwith usage)