Psalm
Get started
Documentation
Paid support
Plugins
Blog
GitHub
<?php abstract class AbstractConfirmCommand { public function __construct(protected RequestSenderInterface $s) {} } class BookingConfirmCommand extends AbstractConfirmCommand { public function __construct(ConfirmRequestSender $s) { parent::__construct($s); } } /** * @template T of \Iterator */ interface RequestSenderInterface { /** @return T */ public function send(): \Iterator; } /** * @implements RequestSenderInterface<\ArrayIterator> */ class ConfirmRequestSender implements RequestSenderInterface { public function send(): \Iterator { return new \ArrayIterator(); } }
Snippet created on March 25 2022 at 08:01 UTC
Settings
Get link