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

![Build Status]( ![Code Coverage]( ![Scrutinizer Code Quality]( ![Latest Stable Version]( ![Packagist download count]( ![Dependency Status](

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.


PHP 5.5 / HHVM 3.3 or later


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

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


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' ) );


// 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 / "contribution guidelinee". A list of people who have made contributions in the past can be found here.


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


GNU General Public License 2.0 or later.