xenji/prowlphp
Lightweight PHP client for Prowl, the iOS push notification service. Send push alerts to your iPhone from PHP applications through a simple API wrapper, with straightforward integration into scripts, cron jobs, and frameworks.
This is a single-purpose, thin wrapper around Prowl’s public HTTP API: you give it an API key and a payload (application, event, description, priority, optional url), and it pushes a notification to registered iOS devices. The package is archived (last release 2016), so treat it as a small vendored utility rather than a living dependency.
curl https://api.prowlapp.com/publicapi/verify?apikey=YOUR_KEY
app/Support/Prowl/) and autoload it manually.
composer require xenji/prowlphp
composer.json, the class file, and any README/examples. Most wrappers of this era expose either push(array $payload) or a positional send($application, $event, $description, $priority); do not assume.// Adapt class/method names to the package source.
$prowl = new Prowl(config('services.prowl.api_key'));
$prowl->push([
'application' => 'Billing',
'event' => 'Payment failed',
'description' => 'Invoice #1234 failed after 3 retries',
'priority' => 1,
'url' => 'https://ops.example.com/invoices/1234',
]);
new Prowl(...) calls through the codebase. Define an AlertNotifier contract, implement a ProwlNotifier, and bind it in the container. This makes it trivial to swap in Pushover, ntfy, Slack, or a direct HTTP call when Prowl or this package becomes untenable.config/services.php sourced from PROWL_API_KEY, and expose defaults for application name (per service/environment) and priority mapping.-2 very low, -1 low, 0 normal, 1 high, 2 emergency. Reserve 2 for actual pages because it bypasses the device’s quiet hours.application = system or service name, event = short alert title, description = context including correlation/request IDs, url = dashboard or runbook link. This makes notifications actionable from the lock screen.ShouldQueue) rather than inline in a web request. The upstream API is external and can be slow or down; you do not want a failing notification provider to fail a user request.apikey support if the wrapper exposes it. Normalize/validate keys and be aware each send consumes rate-limit budget.ERROR/CRITICAL records is a common pattern. Add throttling and deduplication so a retry storm does not produce hundreds of pushes.Sender/transport interface or subclass the package’s send method so tests can assert payloads without network calls. Keep at least one integration smoke test that runs manually or nightly.each(), create_function(), PEAR-style require_once paths, and unguarded file_get_contents. Run it on your target PHP version before committing.2 ignores quiet hours. Do not use it for routine deploys or informational messages; users will revoke the key.curl https://api.prowlapp.com/publicapi/add using the same parameters to separate library bugs from API/account issues.How can I help you explore Laravel packages today?