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

Client Core Laravel Package

nexmo/client-core

Core PHP library for Nexmo/Vonage REST APIs, providing shared client infrastructure, request handling, and exception classes used by the Nexmo PHP SDK. Helps integrate SMS, voice, verification, and related communication services.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

  • Architecture fit: Low for new Laravel/PHP work. nexmo/client-core is a deprecated SDK wrapper for Vonage’s API, not a Laravel-native package. It can fit only as a short-lived compatibility layer inside an existing application already coupled to Nexmo/Vonage APIs. New products should not standardize on it. Nothing in 2.9.2 changes this positioning.
  • Integration feasibility: Technically possible via Composer because it is a PHP library, but Laravel integration would be custom: configuration, dependency injection binding, credential management, HTTP client behavior, webhook handling, and error mapping would need to be owned by the application. Ecosystem validation remains thin; treat any install as an application-owned adapter exercise rather than a supported framework integration.
  • Technical risk: High overall, marginally reduced at the edges. 2.9.2 is a single bugfix (#276) correcting JWT sub claim generation under newer PHP versions. That is a narrow but real reduction in one named risk: JWT-based authentication (used for Voice/Chat-style APIs and some server-side auth flows) was producing malformed claims on modern PHP runtimes, which would surface as opaque 401s. The fix does not address the dominant risks: deprecation in favor of vonage/client-core, stale HTTP/Guzzle dependency constraints, vendor API drift, and no committed upstream roadmap. Apache-2.0 licensing remains favorable. Note also that an active patch release contradicts a "no releases since 2021" assumption — verify current Packagist abandoned/archived status before citing it in planning.
  • Key questions: Is this only for an existing production integration with a fixed migration window? Which Laravel and PHP versions must be supported, and does the JWT fix in 2.9.2 clear the specific PHP-version blocker we hit? Are JWT-authenticated endpoints (Voice, Verify, Messages) actually in use, or only SMS? Are there hard dependencies on old SDK methods or response objects? Who owns fork/maintenance if a blocker appears? What is the deadline to move to vonage/client-core or direct API calls? Does 2.9.2 preserve wire compatibility with the currently pinned version (patch-level, but confirm no behavior change beyond claim contents)?

Integration Approach

  • Stack fit: Weak as a strategic Laravel dependency. It is a plain PHP SDK, so it will not provide Laravel conventions such as publishable config, service providers, facades, queue integration, or typed events. A thin application-owned adapter should isolate it if retained.
  • Migration path: Treat it as legacy-only. Inventory all Nexmo/Vonage API calls, credentials, webhook routes, queued jobs, and stored response payloads. 2.9.2 is a safe intermediate pin if a PHP upgrade is blocked solely by the JWT sub bug — take it as a stopgap, not a destination. Replace with vonage/client-core behind the same adapter interface, then remove nexmo/client-core. If the integration is narrow, direct signed HTTP calls may be simpler and reduce SDK lock-in.
  • Compatibility: 2.9.2 improves compatibility with newer PHP runtimes specifically for JWT generation, which removes one likely upgrade obstacle. Still validate PHP version, Laravel version, Guzzle/PSR-7 constraints, autoloading, and dependency conflicts before any install. Run a Composer dependency audit and static analysis. Do not read a single patch as evidence of ongoing compatibility commitment.
  • Sequencing: 1) Confirm no new feature work depends on it. 2) Freeze current usage and document API surface, flagging any JWT-authenticated calls. 3) Add contract tests around outbound requests, JWT claim shape, and webhook parsing. 4) Pin to 2.9.2 if it unblocks a PHP upgrade; verify claim contents in a staging token exchange. 5) Introduce an internal gateway/adapter. 6) Migrate to vonage/client-core or direct API calls in a branch. 7) Canary release, monitor, then remove the deprecated package and old credentials.

Operational Impact

  • Maintenance: Effectively self-maintained. A single patch release is not a support commitment: no guaranteed PHP/Laravel compatibility, no security patch stream, no published roadmap. If retained, assign an owner, pin versions (2.9.2 is a reasonable pin for JWT correctness), and maintain a fork or patch process. Budget migration effort rather than long-term maintenance.
  • Support: Vendor support should not be expected for this package. Internal support must cover SDK behavior, API changes, credential rotation, JWT/authentication failures, webhook failures, and dependency conflicts. Documentation should explicitly mark it deprecated and block new adoption.
  • Scaling: The SDK itself is unlikely to be the primary scaling bottleneck; application queues, rate limits, retries, idempotency, and Vonage account limits matter more. Stale HTTP dependencies can still complicate connection reuse, timeout tuning, observability, and PHP runtime upgrades.
  • Failure modes: Common risks include Composer resolution failures, incompatible Guzzle/PSR versions, silent API response-shape changes, malformed or rejected JWTs (partially mitigated by 2.9.2), webhook signature/parsing drift, missing retry/idempotency behavior, unhandled rate limits, credential leakage in logs, and breakage after PHP/Laravel upgrades. Deprecated status increases mean time to diagnose because fixes either never arrive or arrive as isolated patches.
  • Ramp-up: Low conceptual ramp-up for engineers familiar with Vonage APIs, but higher than expected because the package is old and non-Laravel-native. New engineers should be told this is a legacy integration, not a recommended pattern, and should not assume an active upstream. Allocate time for dependency archaeology, adapter tests, JWT verification, and migration rehearsal; do not plan new roadmap features on this package.
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.
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
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin