- What is medz/laravel-jpush-notification-channel used for?
- It is a Laravel notification channel for JPush, also known as JiGuang Push. You add the channel to a notification's via() method and implement toJpush(), and Laravel's notification system sends the push to Android, iOS, and other JPush-supported clients. It is a thin translation layer, not a separate dispatch system, so it composes with queues and notifiable models.
- Is this JPush channel compatible with Laravel 10, Laravel 11, or PHP 8?
- The package advertises Laravel 5.5+ and was last released in December 2019, but practical use is limited to legacy Laravel 5.5 through 6.x, possibly 7, on PHP 7.x. There is no evidence of PHP 8.x or Laravel 9, 10, or 11 compatibility work, so do not assume it will install or run on current Laravel. Confirm the actual Laravel and PHP versions with a test matrix before using it.
- How do I install and configure the JPush notification channel in Laravel?
- Install it with Composer using composer require medz/laravel-jpush-notification-channel, then publish the package config and set your JPush app key and master secret. The package's Laravel 5.5+ baseline implies auto-discovery, so you normally do not need to register a service provider manually. Add a toJpush() method and a via() entry to each notification that should send push.
- How do I send a JPush push notification from a Laravel notification class?
- Add jpush to the notification's via() array and implement a toJpush($notifiable) method that returns the JPush message or payload. Then send it with Notification::send($user, new YourNotification()) or $user->notify(new YourNotification()). If the notification implements ShouldQueue, the channel dispatch follows Laravel's normal queue behavior.
- Does it support JPush audience targeting by registration ID, alias, and tag?
- The package is intended to expose JPush audience targeting and payload options, including common JPush selectors such as registration ID, alias, and tag. The exact method names and payload shape are not fully specified in the provided context, so verify them against the JPush v3 API. Test a real send to Android and iOS devices before relying on a targeting mode.
- Is this package maintained and safe for production use?
- No. The repository is archived, the last release was December 2019, and it has only about 44 stars with a 0.14 health score, so there are no security patches, issue responses, or current Laravel support. For production, treat it as reference source or fork it with explicit ownership rather than installing it as an unmaintained dependency.
- What JPush PHP SDK does it depend on and is that SDK PHP 8 compatible?
- The channel appears to wrap a JPush PHP SDK, but the exact SDK package and pinned version are not stated in the context and must be checked in composer.json or the lock file. Because the wrapper is archived, verify that the underlying SDK supports PHP 8.1/8.2 and the current JPush v3 push API independently. If it does not, replace the SDK layer with a maintained SDK or a thin Guzzle client against the JPush REST API.
- Does the channel dispatch Laravel's NotificationFailed event on errors?
- The provided context does not confirm whether the channel emits Laravel's NotificationFailed event on dispatch errors or silently swallows them. Inspect the channel's send() implementation and test a failed JPush response before depending on it for monitoring. If you fork or rewrite the channel, report failures through NotificationFailed or your own exception handling.
- Is there a test suite or CI I can rely on for this package?
- There is no evidence in the context of a test suite or CI signal for this package. It is archived with low community validation, so treat it as untested sample code rather than a verified dependency. Write your own integration tests that exercise a real JPush send on both Android and iOS.
- What are alternatives to this abandoned JPush notification channel?
- The preferred alternative is to in-house a small channel in app/Notifications/Channels/JpushChannel.php or a first-party package, depending directly on a maintained JPush SDK or a thin Guzzle client. A second option is to fork the repository, add PHP 8 and current-Laravel CI, tag an internal version, and reference it by VCS in Composer. Installing it as-is is reasonable only for a short-lived spike or a frozen legacy app.