-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4 from redjanym/develop
New Feature "Topic Notification", minor bug fixes and new documentation wiki
- Loading branch information
Showing
6 changed files
with
124 additions
and
209 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
<?php | ||
|
||
namespace RedjanYm\FCMBundle\Entity; | ||
|
||
|
||
class TopicNotification extends Notification implements \RedjanYm\FCMBundle\Model\TopicNotification | ||
{ | ||
private $topic; | ||
|
||
/** | ||
* @inheritdoc | ||
*/ | ||
public function setTopic($topic) | ||
{ | ||
$this->topic = $topic; | ||
|
||
return $this; | ||
} | ||
|
||
/** | ||
* @inheritdoc | ||
*/ | ||
public function getTopic() | ||
{ | ||
if($this->topic){ | ||
return $this->topic; | ||
} else { | ||
throw new \InvalidArgumentException('The Topic Notification must have a Topic!'); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<?php | ||
|
||
namespace RedjanYm\FCMBundle\Model; | ||
|
||
interface TopicNotification | ||
{ | ||
/** | ||
* @param string $topic | ||
* | ||
* @return TopicNotification | ||
*/ | ||
public function setTopic($topic); | ||
|
||
/** | ||
* @return string | ||
*/ | ||
public function getTopic(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,106 +1,7 @@ | ||
Installation | ||
============ | ||
## FCMBundle | ||
|
||
Step 1: Download the Bundle | ||
--------------------------- | ||
This bundle's purpose is to make possible sending native notifications in mobile devices(Android and iOS) that use Google's **Firebase Cloud Messaging** service from a **Symfony2 Web App**. | ||
|
||
Execute the following command to download the latest stable version of this bundle: | ||
---- | ||
|
||
```bash | ||
$ composer require redjanym/fcm-bundle | ||
``` | ||
|
||
This command requires you to have Composer installed globally, as explained in the [installation chapter](https://getcomposer.org/doc/00-intro.md) of the Composer documentation. | ||
|
||
Step 2: Enable the Bundle | ||
------------------------- | ||
|
||
Then, enable the bundle by adding it to the list of registered bundles in the `app/AppKernel.php` file of your project: | ||
|
||
```php | ||
<?php | ||
// app/AppKernel.php | ||
|
||
// ... | ||
class AppKernel extends Kernel | ||
{ | ||
public function registerBundles() | ||
{ | ||
$bundles = array( | ||
// ... | ||
|
||
new RedjanYm\FCMBundle\RedjanYmFCMBundle(), | ||
); | ||
|
||
// ... | ||
} | ||
|
||
// ... | ||
} | ||
``` | ||
|
||
Step 3: Configuration | ||
--------------------- | ||
|
||
On your `app/config.yml` file add this configuration and insert your Firebase API Key that you can generate in the Firebase Console. | ||
|
||
```yaml | ||
redjan_ym_fcm: | ||
firebase_api_key: sdadasdasdasdasd245sadas5d4a8sd2d5as4d8s | ||
``` | ||
Step 4: Usage | ||
------------- | ||
* Get the FCM client from the container. | ||
```php | ||
$fcmClient = $this->getContainer()->get('redjan_ym_fcm.client'); | ||
``` | ||
|
||
* Create a Notification. For now FCMBundle supports only Device Notifications. Topic Notifications will be added in the future versions. | ||
|
||
``` | ||
$notification = $fcmClient->createDeviceNotification( | ||
'Title of Notification', | ||
'Body of Notification', | ||
'Firebase Token of the device who will recive the notification' | ||
); | ||
``` | ||
In case you need to send extra data or set other notification properties the Notification Entity supports a set of setters and getters like: | ||
``` | ||
$notification->setData($array); and $notification->getData(); | ||
$notification->setPriority('high'); // Excepts 2 priorities, high(default) and low | ||
$notification->setIcon('name of icon located in the native mobile app'); | ||
``` | ||
|
||
You could also modify the arguments passed in the `createDeviceNotification` method. | ||
``` | ||
$notifiaction->setTitle('string'); | ||
$notifiaction->setBody('text'); | ||
$notifiaction->setDeviceToken('string'); | ||
``` | ||
|
||
**The only required field is the Device Token** | ||
|
||
* Send notification | ||
``` | ||
$fcmClient->sendNotification($notification); | ||
``` | ||
|
||
The request of sending the notification is a HTTP Synchronous Request. | ||
|
||
> The Asynchronous requests will be implemented in the next version! | ||
|
||
---------- | ||
|
||
|
||
> This Bundle is a wrapper for this [Firebase Cloud Messaging](https://github.com/sngrl/php-firebase-cloud-messaging) php library | ||
----------- | ||
**License** | ||
FCMBundle is licensed under the MIT license | ||
For more detailed information about **Instalation** and **Usage** please go to bundle's [Wiki](https://github.com/redjanym/FCMBundle/wiki) |
This file was deleted.
Oops, something went wrong.