PHPUnit 8 wants void on setUp, and it is a fatal error

8.0 declares void on the template methods, so every override without it is an incompatible signature — which is a fatal error rather than a deprecation warning.

protected function setUp(): void
{
    parent::setUp();

    $this->repo = new InMemoryOrders();
}

protected function tearDown(): void { parent::tearDown(); }

// static ones too, and they are easy to miss:
public static function setUpBeforeClass(): void {}
public static function tearDownAfterClass(): void {}

It is a mechanical change across every test class and a sed will do it, with the static pair being the part that gets missed and then fails in one suite. Forgetting parent::setUp() is the other classic and produces failures that look nothing like the cause, because the framework’s own initialisation never runs. This is the upgrade’s one genuinely breaking change and it belongs in its own commit.