Hi,
I would like to propose a new syntax that let's you implement an interface only if it exists. `class MyClass extends ?OptionalInterface {}` If the `OptionalInterface` exists, the class implements it. If no such interface can be found, it is ignored. https://wiki.php.net/rfc/optional-interfaces The need to declare compatibility with a certain interface without requiring the interface itself comes up when you're writing code that should work with various versions of other libraries or PHP itself and when a library provides interoperability with some other library or a PHP extension, but does not require it. Although this would mainly be used by library developers, the consumers of those libraries would also benefit as this syntax would clearly communicate the intention of optional interoperability. IDEs and static analysis tools could also have easier time with `?OptionalInterface` instead of class definitions inside an `if (interface_exists(.)) { . } else {.}`. I've not entirely sure about the naming as an "optional interface" feels like an oxymoron. I've also considered names like non-required interfaces, conditional interfaces, optional/conditional implementation or even soft interfaces/soft implementation. Please let me know if the naming itself bothers you. Previous discussion: https://externals.io/message/125967 WIP implementation: https://github.com/php/php-src/pull/17288 Looking forward to your feedback and suggestions! Juris