PHP: OOP ed interfacce

Short link

In PHP l'uso delle interfacce è controllato da regole specifiche.

Definiamo un'interfaccia che possieda un metodo per generare un token di autenticazione:


interface Security {
    public function createToken();
}

A questo punto implementiamo il metodo specificato in due classi distinte. Il metodo implementato deve avere lo stesso nome, la stessa visibilità e la stessa firma del metodo definito nell'interfaccia: questa è la regola fondamentale da seguire quando una classe implemenenta un'interfaccia.


class User implements Security {
    protected $id;

    public function __construct($id) {
        $this->id = $id;
    }

    public function createToken() {
        return uniqid();
    }
}

class SessionManager implements Security {
    private $session;

    public function __construct() {
        $this->session = $_SESSION;
    }

    public function createToken() {
        return md5(uniqid() . $_SERVER['HTTP_USER_AGENT]);
    }
}

Come si può notare la differenza sta nell'implementazione scelta per il metodo. La documentazione di PHP infatti afferma:

Object interfaces allow you to create code which specifies which methods a class must implement, without having to define how these methods are handled.

Comprendere il funzionamento delle interfacce è il primo passo per sviluppare un OOP polimorfico in PHP.

L'autore

Gabriele Romanato, sviluppatore web full stack specializzato in siti, applicativi web ed e-commerce con Node.js e PHP.