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 https://127.0.0.1:8000 URL to see the Welcome page of demo application.
Also access https://127.0.0.1:8000/admin/refresh_database 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.