authbucket / push-php
Push notifications for mobile devices based on the Symfony Components
Requires
- php: >=5.5.9
- authbucket/oauth2-php: ~3.0
- guzzlehttp/guzzle: ~6.0
- psr/log: ~1.0
- symfony/http-foundation: ~2.7
- symfony/http-kernel: ~2.7
- symfony/security: ~2.7
- symfony/validator: ~2.7
Requires (Dev)
- ext-pdo_sqlite: *
- doctrine/data-fixtures: ~1.0
- doctrine/orm: ~2.2
- monolog/monolog: ~1.4
- silex/silex: ~1.3
- symfony/browser-kit: ~2.7
- symfony/config: ~2.7
- symfony/css-selector: ~2.7
- symfony/form: ~2.7
- symfony/phpunit-bridge: ~2.7
- symfony/process: ~2.7
- symfony/translation: ~2.7
- symfony/twig-bridge: ~2.7
- twig/twig: ~1.8
This package is auto-updated.
Last update: 2024-11-19 18:23:00 UTC
README
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.
Installation
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"
}
}
Parameters
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.
Services
The bundled AuthBucketPushServiceProvider come with following services controller which simplify the Push controller implementation overhead:
authbucket_push.push_controller
: Push endpoint controller.
Registering
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());
Demo
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 http://127.0.0.1:8000 URL to see the Welcome page of demo application.
Also access http://127.0.0.1:8000/admin/refresh_database to initialize the bundled SQLite database with user account admin
:secrete
.
Documentation
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.
Tests
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.