Proporcionaré un ejemplo en el que he utilizado interfaces en mi propia experiencia en el mundo real.
Las interfaces son extremadamente útiles cuando necesita definir algo así como una arquitectura de complemento. Supongamos que su aplicación acepta complementos de autenticación, lo que permite que los implementadores de su usuario final se integren con sus propias infraestructuras internas de autenticación (LDAP, Shibboleth, alguna base de datos de autenticación personalizada, lo que sea). Para que un plugin para ser compatible, debe implementar los métodos siguientes:
validate_user()
start_user_session()
logout_user()
get_user_details()
Si se define en una interfaz, una clase luego implementa la interfaz asegurar que los métodos necesarios están presentes para la compatibilidad con la arquitectura plugin.
Desafortunadamente, PHP no impone el tipo de retorno de los métodos de interfaz, por lo que debe simplemente tener cuidado de documentar la funcionalidad de retorno esperada de sus métodos.
Dado que PHP no tiene una verificación de tipo estricta y más bien utiliza un formulario pato de tipeo, estoy de acuerdo. Sin embargo, creo que usar interfaces ayuda a comprender tu código. –
@Micheal Mior: PHP conoce las sugerencias de tipo: 'function foo (BarClass $ x) {echo $ x-> hello; } ' – KingCrunch
@KingCrunch Sí, pero no es a prueba de tontos. – GolezTrol