Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Apns Php Laravel Package

duccio/apns-php

A PHP library for sending push notifications to iOS and macOS via Apple Push Notification service (APNs). Supports HTTP/2 and legacy binary protocols, token and certificate authentication, batch sending, error handling, and feedback.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Push notification feature scoping (iOS): Still the gating question — can we ship iOS push on the current stack, and at what effort/risk? The v2.0.0-alpha release removes the hardest blocker: the package now speaks HTTP/2 instead of Apple's retired binary provider protocol. That changes the answer from "not with this, the transport is dead" to "only if we accept alpha-quality code we must own." The PM decision shifts from a categorical no to an explicit risk trade-off.
  • Build vs. buy vs. adopt: The "adopt" branch is now partially open, but it is adopt-an-alpha, not adopt-a-library. One pre-release, no stable v2, no maintainer commitment, still zero dependents, no semver guarantee, and the upgrade path from v1 requires regenerating certificates. Treat this as fork-and-own with a head start, not adoption.
  • Migration planning for existing integrations: This is the most concrete change. If a team is already on the binary protocol, v2.0.0-alpha is a plausible interim bridge rather than a forced rewrite — but it is a bridge to a bridge, not a destination. The deprecation epic becomes: if HTTP/2 is the only blocker, evaluate the alpha behind a feature flag; otherwise proceed to a maintained client.
  • Platform/standards alignment: Two hard prerequisites now surface as platform requirements, not nice-to-haves: the PHP cURL extension must be compiled with HTTP/2 support, and the Universal Push Notification certificate must be regenerated (the binary-era certificate cannot be reused). Both are environment-provisioning and secrets-rotation work items with lead time — worth confirming before committing to any timeline.
  • Auth model / compliance review: Unchanged and still a gap. HTTP/2 support does not imply token-based auth. The release notes reference certificates, so .p8 JWT tokens, short-lived credentials, and per-notification auth remain unaddressed. The rotation and blast-radius concerns from the prior assessment stand.
  • Capability checklist for a replacement: v2.0.0-alpha is now a better reference spec — it demonstrates HTTP/2 connection handling on top of the existing payload builder and error taxonomy. The apns-push-type (mandatory since iOS 13), apns-priority, apns-collapse-id, apns-expiration, and apns-id correlation gaps still need to be verified against the source; do not assume the transport change closes them.
  • De-scoping option: Weaker than before. "The transport is dead" is no longer a clean argument. If push is not a near-term roadmap item, the honest justification is now capacity and ownership, not technical impossibility — defer on those grounds and say so.

When to Consider This Package

Consider it in these narrow cases:

  • Time-boxed bridge for an existing binary-protocol integration. The team is already on v1, the only blocker to staying is HTTP/2, and the work is a contained, feature-flagged swap to the alpha ahead of a planned move to a maintained client. Cap the investment and set an explicit expiry date.
  • Air-gapped / frozen-environment constraints. A legacy PHP runtime that cannot take new Composer dependencies, now with the added requirement that its cURL is built with HTTP/2. Validate that first — if it is not, this package is no better than v1.
  • Fork base. You intend to vendor the alpha, own it, and add JWT auth and modern headers yourself — accepting a named maintainer and an ongoing patch burden.
  • Reference reading. Understanding HTTP/2 APNs connection handling, payload structure, and error responses while building or evaluating a replacement — no runtime dependency.

Look elsewhere when any of the following hold — which remains the default:

  • Greenfield or new feature work. The only v2 artifact is an alpha. Shipping customer-facing notifications on an unmaintained project's pre-release is not a defensible risk posture. Use a maintained HTTP/2 client (a current edamov/pushok-style library, laravel-notification-channels/apn, or a managed provider) behind a Laravel notification channel.
  • You need modern APNs capabilities: apns-push-type (mandatory for iOS 13+), apns-priority, apns-collapse-id, apns-expiration, per-notification JWT .p8 auth, multiplexing behaviour, response apns-id correlation. The release notes only claim HTTP/2 transport — verify each of these in source before assuming any of them.
  • Security/ops posture matters: The release still centres on certificates, and now requires issuing a new one. Token-based auth with short-lived JWTs and no per-device credential files remains the better governance choice.
  • Framework integration is expected. Still framework-agnostic despite the "Laravel/PHP" framing — no service provider, no config publishing, no queue integration, no notification channel.
  • Test/CI and toolchain expectations: PHP 8.x compatibility, PSR-4 autoloading, static analysis, and modern PHPUnit are still not guaranteed. An alpha on a project dormant since 2016 does not establish a supported matrix.
  • Support and CVE exposure: Unchanged. No stable release and no maintainer commitment means no security patches; adoption is a fork-and-own commitment regardless of the protocol upgrade.

How to Pitch It (Stakeholders)

To executives: The headline objection is gone — a new alpha release adds HTTP/2, the transport Apple actually supports. What has not changed is the risk profile: this is a pre-release of a project with no stable release since 2016, no dependents, and no maintainer commitment. So the recommendation softens but does not reverse: do not adopt for new work; if we already run the binary protocol, the alpha is a possible short-term bridge, not a destination. Either way we fund a contained migration to a maintained HTTP/2 client, and either way we need a certificate reissue and a cURL-with-HTTP/2 verification on our runtime — both with lead time. The cost stays bounded and the unpatched-dependency problem stays on the security register until the migration lands.

To engineering: v2.0.0-alpha is a genuine step — HTTP/2 connection handling on top of the existing payload builder and error taxonomy. Treat it as reference material and, at most, a feature-flagged stopgap. Before anyone plans around it, confirm three things in source: cURL HTTP/2 availability on our runtime, whether JWT .p8 auth exists or it is still certificate-only, and whether apns-push-type / priority / collapse-id headers are actually emitted. If any of those are missing, the gap list versus a maintained client is unchanged and the decision is a straight replace. The migration epic stays the same shape: new client behind a Laravel notification channel, token-based auth, modern headers, retry/observability on APNs response codes — gated on the same delivery tests the old client passed, plus a certificate rotation runbook.

Ask: Confirm (a) whether the current system still sends via the binary protocol, and (b) whether our PHP runtime's cURL has HTTP/2. If yes to both, the alpha is an option worth a time-boxed spike — assign an owner and an expiry. If HTTP/2 is unavailable or the alpha lacks modern-header/JWT support, proceed directly to a maintained client. Record the decision and the alpha's expiry in the architecture decision record either way.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings