Decouple an abstraction from its implementation so that the two can vary independently.
You can also find this code on GitHub
Formatter.php
Formatter.php
PlainTextFormatter.php
PlainTextFormatter.php
HtmlFormatter.php
HtmlFormatter.php
Service.php
Service.php
HelloWorldService.php
HelloWorldService.php
PingService.php
PingService.php
Tests/BridgeTest.php
Tests/BridgeTest.php