Quiero usar interfaces, pero algunas de mis implementaciones se basan en métodos mágicos como __invoke y __call. Tengo que eliminar las firmas de los métodos que pueden invocarse mágicamente (en cualquier implementación) desde la interfaz. Lo que lleva a la interfaz vacía anti patrón (Sí, acabo de inventar eso).Cómo usar interfaces y métodos mágicos en PHP
¿Cómo se combinan las interfaces y los métodos mágicos en PHP?
Clases abstractas, quizás. – BoltClock
Quizás te malinterprete. Intenté definir un ejemplo de clase que amplía un ABase e implementa IA. El método de interfaz se declara abstracto en Base y el ejemplo solo tiene un método __call(). PHP dice: PHP Fatal error: Class ABase contiene 1 método abstracto y por lo tanto debe declararse abstracto o implementar los métodos restantes (ABase :: do_something) –
Bueno, los fundamentos: parent (Base) tiene un método abstracto. Por lo tanto, cualquier niño DEBE implementar el método. Lo mismo es con las interfaces. Entonces, si Base implementa IA, y Base declara su implementación de método como abstracta, se le obliga a implementar el método en cualquier elemento secundario. El error lo dice todo ^^ – usoban