Saltar a contenido

Interfaces

Permite definir un contrato con las firmas de los métodos a cumplir. Así pues, solo contiene declaraciones de funciones y todas deben ser públicas.

Se declaran con la palabra clave interface y luego las clases que cumplan el contrato lo realizan mediante la palabra clave implements.

ejemplointerfaces.php
<?php
interface Nombreable {
// declaración de funciones
}
class NombreClase implements NombreInterfaz {
// código de la clase
}

PHP también permite la herencia de interfaces. Además, una clase puede implementar varios interfaces (en este caso, sí soporta la herencia múltiple, pero sólo de interfaces).

ejemplointerfaces2.php
<?php
interface Mostrable {
    public function mostrarResumen() : string;
}

interface MostrableTodo extends Mostrable {
    public function mostrarTodo() : string;
}

interface Facturable {
    public function generarFactura() : string;
}

class Producto implements MostrableTodo, Facturable {
    // Implementaciones de los métodos
    // Obligatoriamente deberá implementar public function mostrarResumen, mostrarTodo y generarFactura
}

Actividad

  • 🧪 PR 313. (RA3 / CE3b CE3c CE3d CE3g / IC2 / 5p) - Siguiendo con el proyecto de e-commerce, se necesita que implementes la interfaz Facturable para Pedido y PedidoComercial.

    interfaz Facturable

    La interfaz Facturable define las operaciones que debe cumplir cualquier clase que pueda generar o gestionar una factura. Algunas operaciones típicas que podría incluir son:

    • calcularTotal(): permite obtener el total a pagar por el pedido, incluyendo posibles descuentos, impuestos o tasas adicionales.
    • generarFactura(): genera un artefacto que representa la factura del pedido, incluyendo todos los datos necesarios (cliente, productos, precios, totales).
    • obtenerDatosFactura(): devuelve los datos necesarios para construir la factura, como el número de pedido, nombre del cliente, dirección de facturación, etc.
    • aplicarDescuento(): (opcional) si el sistema lo permite, esta operación aplicaría descuentos comerciales o promocionales al pedido antes de generar la factura.