bentools / webpush-bundle
Send push notifications through Web Push Protocol to your Symfony users.
Installs: 229 999
Dependents: 1
Suggesters: 0
Security: 0
Stars: 70
Watchers: 10
Forks: 42
Open Issues: 9
Type:symfony-bundle
Requires
- php: >=8.1
- ext-curl: *
- ext-json: *
- ext-mbstring: *
- ext-openssl: *
- guzzlehttp/guzzle: ^6.5.8 || ^7.4
- minishlink/web-push: ^6.0.7 || ^7.0 || ^8.0 || ^9.0
- symfony/http-kernel: ^5.4.20 || ^6.0 || ^7.0
Requires (Dev)
- bentools/doctrine-static: 1.0.x-dev
- doctrine/dbal: ^2.9 || ^3.0
- phpunit/phpunit: ^9.0
- symfony/config: ^5.4 || ^6.0 || ^7.0
- symfony/dependency-injection: ^5.4 || ^6.0 || ^7.0
- symfony/framework-bundle: ^5.4 || ^6.0 || ^7.0
- symfony/http-foundation: ^5.4 || ^6.0 || ^7.0
- symfony/routing: ^5.4 || ^6.0 || ^7.0
- symfony/security-core: ^5.4 || ^6.0 || ^7.0
- symfony/var-dumper: ^5.4 || ^6.0 || ^7.0
- symfony/yaml: ^5.4 || ^6.0 || ^7.0
- twig/twig: ^2.0 || ^3.0
README
Webpush Bundle
This bundle allows your app to leverage the Web Push protocol to send notifications to your users' devices, whether they're online or not.
With a small amount of code, you'll be able to associate your Symfony users to WebPush Subscriptions:
- A single user can subscribe from multiple browsers/devices
- Multiple users can subscribe from a single browser/device
This bundle uses your own persistence system (Doctrine or anything else) to manage these associations.
We assume you have a minimum knowledge of how Push Notifications work, otherwise we highly recommend you to read Matt Gaunt's Web Push Book.
Example Use cases
- You have a todolist app - notify users they're assigned a task
- You have an eCommerce app:
- Notify your customer their order has been shipped
- Notify your category manager they sell a product
Summary
- Installation
- The UserSubscription entity
- The UserSubscription manager
- Configure the bundle
- Enjoy!
- F.A.Q.
Getting started
This bundle is just the back-end part of the subscription process. For the front-end part, have a look at the webpush-client package.
Composer is your friend:
PHP8.1+ is required.
composer require bentools/webpush-bundle
⚠️ We aren't on stable version yet - expect some changes.
Generate your VAPID keys:
php bin/console webpush:generate:keys
You'll have to update your config with the given keys. We encourage you to store them in environment variables or in parameters.yml
.
Next: Create your UserSubscription class
Tests
./vendor/bin/phpunit
License
MIT
Credits
This bundle leverages the minishlink/web-push library.