Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dstuecken/notify
Framework agnostic and lightweight notification system (implementing the PSR LoggerInterface) with several handling adapters.
https://github.com/dstuecken/notify
composer handler hipchat loggerinterface php php7 psr-loggerinterface syslog
Last synced: about 2 months ago
JSON representation
Framework agnostic and lightweight notification system (implementing the PSR LoggerInterface) with several handling adapters.
- Host: GitHub
- URL: https://github.com/dstuecken/notify
- Owner: dstuecken
- License: mit
- Created: 2015-10-21T15:29:30.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2020-03-11T17:35:29.000Z (almost 5 years ago)
- Last Synced: 2024-10-31T06:51:35.881Z (2 months ago)
- Topics: composer, handler, hipchat, loggerinterface, php, php7, psr-loggerinterface, syslog
- Language: PHP
- Homepage:
- Size: 41 KB
- Stars: 5
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Notify
Framework agnostic and lightweight notification system implementing the PSR LoggerInterface with several handling adapters.
Feel free to implement your own handlers!
[![Build Status](https://travis-ci.org/dstuecken/notify.svg)](https://travis-ci.org/dstuecken/notify)
[![License](https://poser.pugx.org/dstuecken/notify/license)](https://packagist.org/packages/dstuecken/notify)
[![Latest Stable Version](https://poser.pugx.org/dstuecken/notify/v/stable)](https://packagist.org/packages/dstuecken/notify)
[![Latest Unstable Version](https://poser.pugx.org/dstuecken/notify/v/unstable)](https://packagist.org/packages/dstuecken/notify)## Requirements
* PHP 5.4
## Installation
### Using Composer
To install Notify with Composer, just add the following to your composer.json file:
```json
{
"require": {
"dstuecken/notify": "dev-master"
}
}
```or by running the following command:
```shell
composer require dstuecken/notify
```## Usage
### Use the Header Handler
```php
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.### Use the Logger Handler
You can send your notifications to any LoggerInterface capable logger:
```php
addHandler(
new LoggerHandler($logger, NotificationCenter::ERROR)
);$notificationCenter->error('There was an error.');
```### Use the HipChat Handler
You can also send all your CRITICAL notifications to hipchat, for example:
```php
addHandler(
new HipChatHandler($hipchat, 'hipchat-room-id', NotificationCenter::CRITICAL, 'hipChatBotName')
);$notificationCenter->error('There was an error.');
```### Push your notifications to several Handlers
You can send your notifications to different handlers in different levels:
```php
addHandler(
new HeaderHandler(
'Notify',
NotificationCenter::INFO
)
)
->addHandler(
new LoggerHandler(new Logger(), NotificationCenter::ERROR)
);$notificationCenter->error('There was an error.', HeaderHandler::formatAttributes(null, null, true));
```## Currently implemented Handlers
### Header
Sends an HTTP Header, which can be observed by Javascript to represent errors as growl-like notification messages.
### Logger
Forwards your notifications to a Logger, which implements the LoggerInterface.
### MacOS
Displays a Mac OS X Notification Center Message.
### HipChat
Drops notifications on your hipchat rooms.
### NotifySend
Notify via Ubuntu's notification service.
### Syslog
Send your notifications to a syslog (using the PHP syslog() function).
### Smarty
Attach your notifications to a smarty template variable
### Memory
Forward notifications to an array
## Tests
Run phpunit tests with
```shell
phpunit --bootstrap tests/bootstrap.php tests
```