Framework agnostic and lightweight notification system implementing the PSR LoggerInterface with several handling adapters.
Feel free to implement your own handlers!
- PHP 5.4
To install Notify with Composer, just add the following to your composer.json file:
{
"require": {
"dstuecken/notify": "dev-master"
}
}
or by running the following command:
composer require dstuecken/notify
<?php
$notificationCenter = new NotificationCenter();
$notificationCenter->addHandler(
new HeaderHandler('Notify', NotificationCenter::ERROR)
);
$notificationCenter->error('There was an error.');
The Header handler is used to send an HTTP Header to the Browser in the following (changable) format: X-Notify-Notification. This header can then be grabed by a javascript implementation to display a nice and clean javascript error message while continuing the application with a normal response.
You can send your notifications to any LoggerInterface capable logger:
<?php
$logger = new Logger('my-logger');
$notificationCenter = new NotificationCenter();
$notificationCenter->addHandler(
new LoggerHandler($logger, NotificationCenter::ERROR)
);
$notificationCenter->error('There was an error.');
You can also send all your CRITICAL notifications to hipchat, for example:
<?php
$hipchat = new HipChat\HipChat('apiKey123', );
$notificationCenter = new NotificationCenter();
$notificationCenter->addHandler(
new HipChatHandler($hipchat, 'hipchat-room-id', NotificationCenter::CRITICAL, 'hipChatBotName')
);
$notificationCenter->error('There was an error.');
You can send your notifications to different handlers in different levels:
<?php
$logger = new Logger('my-logger');
$notificationCenter = new NotificationCenter();
$notificationCenter
->addHandler(
new HeaderHandler(
'Notify',
NotificationCenter::INFO
)
)
->addHandler(
new LoggerHandler(new Logger(), NotificationCenter::ERROR)
);
$notificationCenter->error('There was an error.', HeaderHandler::formatAttributes(null, null, true));
Sends an HTTP Header, which can be observed by Javascript to represent errors as growl-like notification messages.
Forwards your notifications to a Logger, which implements the LoggerInterface.
Displays a Mac OS X Notification Center Message.
Drops notifications on your hipchat rooms.
Notify via Ubuntu's notification service.
Send your notifications to a syslog (using the PHP syslog() function).
Attach your notifications to a smarty template variable
Forward notifications to an array
Run phpunit tests with
phpunit --bootstrap tests/bootstrap.php tests