В статических языках, таких как Java, вам нужны интерфейсы, потому что иначе система типов просто не позволит вам делать определенные вещи. Но в динамических языках, таких как PHP и Python, вы просто принимаете преимущество утиной печати.
PHP поддерживает интерфейсы. Ruby и Python их не имеют. Таким образом, вы можете спокойно жить без них.
Я в основном делал свою работу на PHP и никогда не был используя возможность определения интерфейсов. Когда мне нужно набор классов для реализации определенного общего интерфейса, затем Я просто опишу его в документации.
Итак, что вы думаете? Вам лучше не использовать интерфейсов в динамических языках вообще?