BlueSpice MediaWiki master
 All Classes Namespaces Files Functions Variables Groups Pages
Message reporter

![Build Status](https://secure.travis-ci.org/onoi/message-reporter.svg?branch=master) ![Code Coverage](https://scrutinizer-ci.com/g/onoi/message-reporter/badges/coverage.png?b=master) ![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/onoi/message-reporter/badges/quality-score.png?b=master) ![Latest Stable Version](https://poser.pugx.org/onoi/message-reporter/version.png) ![Packagist download count](https://poser.pugx.org/onoi/message-reporter/d/total.png) ![Dependency Status](https://www.versioneye.com/php/onoi:message-reporter/badge.png)

An interface to report and relay arbitrary messages to registered handlers. This was part of the Semantic MediaWiki code base and is now being deployed as independent library.

Requirements

PHP 5.5 / HHVM 3.3 or later

Installation

The recommended installation method for this library is to add it as dependency to your composer.json.

```json { "require": { "onoi/message-reporter": "~1.3" } } ```

Usage

The message reporter specifies MessageReporter and MessageReporterAware as an interface for all interactions with a set of supporting classes:

  • MessageReporterFactory
  • ObservableMessageReporter
  • NullMessageReporter
  • SpyMessageReporter

```php use Onoi; use Onoi; use Onoi; use Onoi;

class Bar implements MessageReporterAware {

use MessageReporterAwareTrait;

public function __construct() {
    $this->messageReporter = MessageReporterFactory::getInstance()->newNullMessageReporter();
}

public function doSomething() {
    $this->messageReporter->reportMessage( 'Doing ...' );
}

} ```

```php use Onoi; use Onoi;

class Foo implements MessageReporter {

public function reportMessage( $message ) {
    // output
}

}

$foo = new Foo();

$messageReporterFactory = new MessageReporterFactory();

$observableMessageReporter = $messageReporterFactory->newObservableMessageReporter(); $observableMessageReporter->registerReporterCallback( array( $foo, 'reportMessage' ) );

or

// If the class implements the MessageReporter $observableMessageReporter->registerMessageReporter( $foo );

$bar = new Bar(); $bar->setMessageReporter( $observableMessageReporter ); ```

Contribution and support

If you want to contribute work to the project please subscribe to the developers mailing list and have a look at the /CONTRIBUTING.md "contribution guidelinee". A list of people who have made contributions in the past can be found here.

Tests

The library provides unit tests that covers the core-functionality normally run by the continues integration platform. Tests can also be executed manually using the PHPUnit configuration file found in the root directory.

Release notes

  • 1.3.0 (2017-11-05)
    • Added MessageReporterAwareTrait
  • 1.2.0 (2016-08-02)
    • Added MessageReporterAware and SpyMessageReporter
  • 1.1.0 (2016-04-13)
    • ObservableMessageReporter::registerReporterCallback to register only callable handlers
  • 1.0.0 (2015-01-24)
    • Initial release
    • MessageReporterFactory
    • ObservableMessageReporter
    • NullMessageReporter
    • MessageReporter

License

GNU General Public License 2.0 or later.