Skip to content
This repository has been archived by the owner on Apr 20, 2024. It is now read-only.

ml-archive/nodes-php-push

Repository files navigation

Push

A Push manager to send push messages to mobile devices from your project.

Total downloads Monthly downloads Latest release Open issues License Star repository on GitHub Watch repository on GitHub Fork repository on GitHub Travis tests codecov StyleCI

📝 Introduction

At Nodes we send a lot of push messages from our mobile API's.

Therefore we've created a push manager, which makes the job a lot easier

📦 Installation

To install this package you will need:

  • Laravel 5.2+
  • PHP 7.0+

You must then modify your composer.json file and run composer update to include the latest version of the package in your project.

"require": {
    "nodes/push": "^2.0"
}

Or you can run the composer require command from your terminal.

composer require nodes/push:^2.0

🔧 Setup

In Laravel 5.5 or above, service providers and aliases are automatically registered. If you're using Laravel 5.5 or above, skip ahead directly to Publish config files.

Setup service provider in config/app.php

Nodes\Push\ServiceProvider::class

Setup alias in config/app.php

'Push' => Nodes\Push\Support\Facades\Push::class

Publish config files

php artisan vendor:publish --provider="Nodes\Push\ServiceProvider"

If you want to overwrite any existing config files use the --force parameter

php artisan vendor:publish --provider="Nodes\Push\ServiceProvider" --force

⚙ Usage

Global method

push();

Example

push()->setMessage('test')
->setExtra([
    'id' => 1
])
->send();

Function on provider used to send push

// Add data to push
setMessage(string $message) : ProviderInterface; // Message (Required)
setExtra(array $extra) : ProviderInterface; // Array of key/value (int, float, bool, string)

// Segment push for userId / userIds
setAlias(string $alias) : ProviderInterface;
setAliases(array $aliases) : ProviderInterface;

// Segment push for channels, like "weekend_news" or "daily_news"
setChannels(array $channels) : ProviderInterface;
setChannel(string $channel) : ProviderInterface;

// Send push, before this is executed nothing will get send
send() : array; //In request, return array of results from provider

// Advanced configs
setIOSBadge($iOSBadge) : ProviderInterface; //Control badge on iOS app icon
setSound(string $sound) : ProviderInterface; // Custom sound
removeSound() : ProviderInterface; // Remove custom sound
setIosContentAvailable(bool $iosContentAvailable) : ProviderInterface; // Should not go in notification center
setAndroidData(array $androidData) : ProviderInterface; // Add more extra for android only, android can handle 8 times more data in push than iOS
setAndroidDeliveryPriorityHigh() : ProviderInterface; // Make sure the Android device wakes up when push is recieved 
setAppGroup(string $appGroup) : ProviderInterface; // Change your default-app-group in run time. Handy for white labeling

🏆 Credits

This package is developed and maintained by the PHP team at Nodes Agency

Follow Nodes PHP on Twitter Tweet Nodes PHP

📄 License

This package is open-sourced software licensed under the MIT license