micronax/prowl-bundle
Micronax ProwlBundle integrates Prowl push notifications into Symfony applications, offering services and configuration to send alerts to iOS devices via the Prowl API for lightweight monitoring and event notifications.
xenji/prowlphp library behind a Laravel-native channel, or (c) build a thin Http-based channel in-house. For a Laravel product the honest answer is (b) or (c); this repo is a specification sketch, not an installable package.Consider it (as reference, not dependency) when:
DependencyInjection/Configuration.php and Resources/config/services.yml are a usable blueprint for writing your own Laravel service provider and channel.Look elsewhere (or do not adopt) when:
Bundle subclass with a DI container registration model Laravel does not have — no service provider, no facade, no publishable config, no extra.laravel block. Composer will not resolve it alongside Laravel's Symfony 6/7 tree, and forcing it via --ignore-platform-reqs or a replace shim drags an unmaintained Symfony 2 container into production. That is a hard no.Executive summary: This is a small, MIT-licensed Symfony2 wrapper around Prowl, an iOS push notification service. It is not a Laravel package and will not install into our stack — it pins Symfony 2.x dependencies that conflict with modern Laravel. Its only real value to us is as a design blueprint: a dozen configuration keys and one API call. The underlying capability is one HTTP POST with five form fields, which Laravel's Http facade and a queued job cover natively. Adoption signal is weak — 8 stars, zero dependents, no release cadence. Recommendation: do not adopt as a dependency. Spend roughly half a day reimplementing the intent as a Laravel-native, queued notification channel. Separately, treat the decision about whether Prowl remains a supported channel at all as its own tracked initiative — the vendor risk is larger than the wrapper risk.
Engineering summary: Treat the repository as documentation. Read DependencyInjection/Configuration.php for the config surface and Resources/config/services.yml for wiring, then build an internal ProwlChannel implementing Laravel's notification contract, with config/prowl.php for api_url, api_key, application, priority, timeout, and queue. Use Http::asForm()->timeout(5)->retry(3, 200, throw: false) instead of curl, dispatch from a ShouldQueue notification so web requests never block on a third-party POST, and explicitly map Prowl's response codes — 200 success, 400 bad request, 401 invalid key, 406 not approved, 409 not registered, 500/503 server or rate limit — into log events and a metric. Put the channel behind an interface with a config-driven provider selector, route through a RateLimiter, partition keys per tenant where possible, and drop non-critical priorities first under throttle. Keys belong in a secrets manager, not a checked-in .env; the key is the sole credential and there is no per-message revocation, so document rotation. Net engineering cost is a few dozen lines, and it eliminates the entire dependency-graph problem. The abstraction is the highest-value decision here — it is the only thing that survives the vendor, and it should be treated as a hard requirement, not a nice-to-have.
How can I help you explore Laravel packages today?