Unfortunately, only contravariant arguments are supported so the command/handler example will not work:
interface Command{} interface CommandHandler{ public function handle(Command $command) : void ; } class KillAllHumans implements Command{} class KillAllHumansHandler implements CommandHandler{ public function handle(KillAllHumans $command) : void {} }
I can't see the usefulness of contravariant VS covariant arguments. I guess there were some technical issues implementing covariant arguments.
I was hyped up with PHP 7.4 only for that!
You are right. Amazingly enough, I realized it in a conversation in some slack community at the same time you wrote the comment.
I will correct the article as soon as I can. Update: fixed!
Thanks for pointing it out!
Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink.
Hide child comments as well
Confirm
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Unfortunately, only contravariant arguments are supported so the command/handler example will not work:
I can't see the usefulness of contravariant VS covariant arguments. I guess there were some technical issues implementing covariant arguments.
I was hyped up with PHP 7.4 only for that!
You are right. Amazingly enough, I realized it in a conversation in some slack community at the same time you wrote the comment.
I will correct the article as soon as I can. Update: fixed!
Thanks for pointing it out!