Framework agnostic and lightweight notification system (implementing the PSR LoggerInterface) with several handling adapters.
MIT License
Framework agnostic and lightweight notification system implementing the PSR LoggerInterface with several handling adapters.
Feel free to implement your own handlers!
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