Push notifications for mobile devices based on the Symfony Components

1.0.6 2015-12-22 10:06 UTC


Build Status Coverage Status Dependency Status Latest Stable Version Total Downloads License

The primary goal of AuthBucket\Push is to develop a library for sending out push notifications to mobile devices; secondary goal would be develop corresponding wrapper Symfony2 Bundle and Drupal module.

This library bundle with a Silex based AuthBucketPushServiceProvider for unit test and demo purpose. Installation and usage can refer as below.


Simply add a dependency on authbucket/push-php to your project's composer.json file if you use Composer to manage the dependencies of your project.

Here is a minimal example of a composer.json:

    "require": {
            "authbucket/push-php": "~3.0"


The bundled AuthBucketPushServiceProvider come with following parameters:

  • authbucket_push.model: (Optional) Override this with your own model classes, default with in-memory AccessToken for using resource firewall with remote debug endpoint.
  • authbucket_push.model_manager.factory: (Optional) Override this with your backend model managers, e.g. Doctrine ORM EntityRepository, default with in-memory implementation for using resource firewall with remote debug endpoint.


The bundled AuthBucketPushServiceProvider come with following services controller which simplify the Push controller implementation overhead:

  • authbucket_push.push_controller: Push endpoint controller.


If you are using Silex, register AuthBucketPushServiceProvider as below:

$app->register(new AuthBucket\Push\Provider\AuthBucketPushServiceProvider());

Moreover, enable following service providers if that's not already the case:

$app->register(new AuthBucket\OAuth2\Provider\AuthBucketOAuth2ServiceProvider());
$app->register(new Silex\Provider\MonologServiceProvider());
$app->register(new Silex\Provider\SecurityServiceProvider());
$app->register(new Silex\Provider\ValidatorServiceProvider());


The demo is based on Silex and AuthBucketPushServiceProvider. Read though Demo for more information.

You may also run the demo locally. Open a console and execute the following command to install the latest version in the push-php directory:

$ composer create-project authbucket/push-php authbucket/push-php "~1.0"

Then use the PHP built-in web server to run the demo application:

$ cd authbucket/push-php
$ ./app/console server:run

If you get the error There are no commands defined in the "server" namespace., then you are probably using PHP 5.3. That's ok! But the built-in web server is only available for PHP 5.4.0 or higher. If you have an older version of PHP or if you prefer a traditional web server such as Apache or Nginx, read the Configuring a web server article.

Open your browser and access the URL to see the Welcome page of demo application.

Also access to initialize the bundled SQLite database with user account admin:secrete.


Push's documentation is built with Sami and publicly hosted on GitHub Pages.

To built the documents locally, execute the following command:

$ composer sami

Open build/sami/index.html with your browser for the documents.


This project is coverage with PHPUnit test cases; CI result can be found from Travis CI; code coverage report can be found from Coveralls.

To run the test suite locally, execute the following command:

$ composer phpunit

Open build/logs/html with your browser for the coverage report.