inscouts/rms-push-notifications-bundle
A Symfony bundle that integrates RMS push notifications into your PHP application, providing services and configuration to send notifications through the RMS platform with minimal setup in your Symfony project.
Architecture fit. The first thing a TPM must flag is that this is not a Laravel package. RMSPushNotificationsBundle is a Symfony 2 bundle — it ships a *Bundle class, a DependencyInjection/*Extension with a Configuration tree, and service definitions wired through Symfony's container. Laravel's service container, package discovery, and config publishing have no mechanism to register or boot it. Making it work in Laravel means either (a) booting a partial Symfony kernel inside Laravel, or (b) hand-porting the transport classes out of the bundle and re-wiring them manually. Neither is a "composer require" integration.
The package is also a fork of an abandoned upstream (richsage/RMSPushNotificationsBundle) with 0 stars, 0 dependents, and a score of 0. That means no ecosystem validation, no downstream bug reports, no community patches. It is effectively single-owner code.
Integration feasibility. Low. The underlying transports target protocols that are dead or dying:
So even if you solved the framework mismatch, you would be integrating against endpoints that no longer accept traffic. The realistic value of this repo is as a reference implementation for payload construction and device-token handling, not as a runtime dependency.
Technical risk. High, on every axis:
Key questions for the requester:
TPM recommendation: Do not adopt as a dependency. Treat it as a design reference and select a maintained transport library.
Stack fit. Poor against a Laravel target. The bundle assumes Symfony's kernel, event dispatcher, and DI conventions. A Laravel application would need an adapter layer that instantiates the transport services directly (bypassing the bundle's extension classes entirely) — at which point you are maintaining a vendored fork of a fork.
Recommended replacements, by need:
| Need | Candidate |
|---|---|
| APNs (HTTP/2, token auth) | edamov/pushok, laravel-notification-channels/apn |
| FCM (HTTP v1) | kreait/laravel-firebase, laravel-notification-channels/fcm |
| Multi-channel abstraction | Laravel's native Notification system with per-channel drivers |
| Web push | laravel-notification-channels/webpush |
Migration path. If the org already runs this on a legacy Symfony service, quarantine it: keep it behind an internal PushTransport interface, do not extend it, and plan replacement. If this is greenfield, skip migration entirely — there is nothing to migrate from.
Suggested sequencing:
PushTransport contract in the Laravel app (send, validate token, handle receipt) so the vendor choice is swappable.composer.json.Compatibility. Expect hard blockers: Symfony 2 components conflict with Laravel's Illuminate 10/11 constraints; ext-curl and OpenSSL requirements are fine, but the code predates PHP 7.2 type declarations and will emit deprecations on PHP 8.x. Composer will likely require --ignore-platform-reqs or a fork pin, both of which are unacceptable in production.
Sequencing risk. The one thing you must not do is sequence this after a Laravel upgrade. Do the transport replacement first or in parallel; otherwise you inherit a package that blocks the framework upgrade.
Maintenance. Total internal ownership. No upstream commits, no security advisories, no CVE response. Budget for a named maintainer or accept it as technical debt with a scheduled removal date. Certificate rotation for APNs is manual and failure is silent — a classic 2 a.m. page.
Support. Zero community. Stack Overflow answers for RMSPushNotificationsBundle are from the Symfony 2 era and reference APIs that no longer exist. Any incident is a bespoke debugging exercise.
Scaling. The binary APNs protocol relies on persistent connections and per-connection error handling via the feedback service — also deprecated. Throughput tuning (connection pooling, batching) must be hand-built. Modern HTTP/2 multiplexing solves this out of the box; staying on the legacy path means building and operating that plumbing yourself.
Failure modes to anticipate:
UNREGISTERED errors.composer update breaks the build when transitive constraints collide with Laravel.Ramp-up. Deceptively low for engineers with Symfony 2 or push-infrastructure experience; high for anyone else, because the knowledge required is about protocols that no longer exist and cannot be learned from current documentation. Onboarding cost is effectively the cost of learning a dead system. A modern Laravel push channel can be onboarded in under a day.
Bottom line. This package is a framework mismatch, a protocol mismatch, and an unmaintained fork with no adoption signal. Recommend a formal "no" with a written alternative path: abstract the transport, adopt current APNs/FCM libraries, and treat this repo as reference material for payload shape only.
How can I help you explore Laravel packages today?