| Package Data | |
|---|---|
| Maintainer Username: | papertank |
| Maintainer Contact: | hello@papertank.com (Papertank Limited) |
| Package Create Date: | 2015-08-02 |
| Package Last Update: | 2025-09-10 |
| Home Page: | |
| Language: | PHP |
| License: | MIT |
| Last Refreshed: | 2025-12-13 03:05:31 |
| Package Statistics | |
|---|---|
| Total Downloads: | 5,050 |
| Monthly Downloads: | 28 |
| Daily Downloads: | 0 |
| Total Stars: | 6 |
| Total Watchers: | 1 |
| Total Forks: | 0 |
| Total Open Issues: | 0 |
This package adds a push notification channel for notifications in Laravel 5.3 or greater projects.
For more on notification channels, visit https://laravel.com/docs/5.3/notifications
Install this package through Composer.
composer require origami/push
This package is designed to work with Laravel >= 5.3 currently.
As standard, there is a Laravel 5 is a service provider you can make use of to automatically prepare the bindings.
// app/config/app.php
‘providers’ => [
...
Origami\Api\ApiServiceProvider::class
];
There are some API configuration options that you’ll want to overwrite. First, publish the default configuration.
php artisan vendor:publish --provider="Origami\Api\ApiServiceProvider"
This will add a new configuration file to: config/push.php.
You will most likely be storing devices in your database using an Eloquent model, e.g. App\Device.
To have that work with this package, you just need to make sure it implements the Origami\Push\Contracts\Device interface.
namespace App;
use Origami\Push\Contracts\Device as PushDevice;
class Device extends Model implements PushDevice {
}
Next, you need to add two methods to get the service - either apns for iOS, gcm for Google Cloud Messaging or fcm for Firebase Cloud Messaging - and the device identifier.
public function getPushService()
{
switch ( $this->make ) {
case 'apple':
case 'ios':
case 'iphone':
return 'apns';
break;
case 'android':
return 'fcm';
break;
default:
throw new \Exception('Unable to determine push service for ' . $this->make);
}
}
public function getPushToken()
{
return $this->device_token;
}
In Laravel 5.3, you're most likely to send a push notification to your users. See the Laravel Docs for more information.
To get your User's devices, assuming you are using an Eloquent model above, you would just add a routeNotificationForPush method to your Eloquent model.
public function routeNotificationForPush()
{
$devices = $this->devices()->get();
return $devices ? $devices->all() : [];
}
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Origami\Push\PushNotification;
class UserJoined extends Notification implements ShouldQueue
{
use Queueable;
public function __construct($user)
{
$this->user = $user;
}
public function via($notifiable)
{
return ['push'];
}
public function toPush($notifiable)
{
return (new PushNotification)
->message($this->user->name . ' just joined')
->meta([
'event' => 'NewUser',
'user' => $this->user->id
]);
}
}
<?php
$device = new Origami\Push\Device('apns', '12346...');
$push = (new Origami\Push\PushNotification)
->message('Testing, testing, 1, 2, 3.');
app('Origami\Push\PushManager')
->driver($device->getPushService())
->send($device, $push);