- Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- Thing done. Thing done. Log logged. Thing done. Mail sended.
<?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();