Message Reporter
, (*1)
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., (*2)
Requirements
PHP 7.3 or later, (*3)
Installation
The recommended installation method for this library is to add it as dependency to your composer.json., (*4)
{
"require": {
"onoi/message-reporter": "~1.4"
}
}
Usage
The message reporter specifies MessageReporter
and MessageReporterAware
as an interface for all interactions with a set of supporting classes:
- MessageReporterFactory
- ObservableMessageReporter
- NullMessageReporter
- SpyMessageReporter
- CallbackMessageReporter
, (*5)
use Onoi\MessageReporter\MessageReporterFactory;
use Onoi\MessageReporter\MessageReporterAware;
use Onoi\MessageReporter\MessageReporterAwareTrait;
class Bar implements MessageReporterAware {
use MessageReporterAwareTrait;
public function __construct() {
$this->messageReporter = MessageReporterFactory::getInstance()->newNullMessageReporter();
}
public function doSomething() {
$this->messageReporter->reportMessage( 'Doing ...' );
}
}
use Onoi\MessageReporter\MessageReporterFactory;
use Onoi\MessageReporter\MessageReporter;
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 contribution guidelinee. A list of people who have made contributions in the past can be found here., (*6)
Development
Start by installing the project dependencies by executing, (*7)
composer update
You can run the tests by executing, (*8)
make test
You can run the style checks by executing, (*9)
make cs
To run all CI checks, execute, (*10)
make ci
You can also invoke PHPUnit directly to pass it arguments, as follows, (*11)
vendor/bin/phpunit --filter SomeClassNameOrFilter
Release notes
-
1.4.2 (2021-01-15), (*12)
- Added support for PHP 8
- Changed minimum PHP version to 7.3
-
1.4.1 (2019-04-10), (*13)
-
1.4.0 (2019-04-08), (*14)
- Added
CallbackMessageReporter
- Changed minimum PHP version to 5.6.99
-
1.3.0 (2017-11-05), (*15)
- Added
MessageReporterAwareTrait
-
1.2.0 (2016-08-02), (*16)
- Added
MessageReporterAware
and SpyMessageReporter
-
1.1.0 (2016-04-13), (*17)
-
ObservableMessageReporter::registerReporterCallback
to register only callable handlers
-
1.0.0 (2015-01-24), (*18)
- Initial release
MessageReporterFactory
ObservableMessageReporter
NullMessageReporter
MessageReporter
License
GNU General Public License 2.0 or later., (*19)