<?php interface DoThing { public function doThing(): void; } class SimplyDoThing implements DoThing { public function doThing(): void { echo 'Thing done.' . PHP_EOL; } } class DoThingAndLog implements DoThing { public function __construct(private object $logger) {} public function doThing(): void { echo 'Thing done.' . PHP_EOL; echo 'Log logged.' . PHP_EOL; } } class DoThingAndMail implements DoThing { public function __construct(private object $mailer) {} public function doThing(): void { echo 'Thing done.' . PHP_EOL; echo 'Mail sended.' . PHP_EOL; } } (new SimplyDoThing)->doThing(); (new DoThingAndLog(new stdClass))->doThing(); (new DoThingAndMail(new stdClass))->doThing();
You have javascript disabled. You will not be able to edit any code.