0Pricing
PHP Academy · Lezione

Implementazione delle interfacce

Definire contratti con interface e implementarli in più classi.

Implementazione delle interfacce è una lezione PHP Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento PHP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso PHP Academy include 4 lezioni in totale.

Introduzione: Interfacce di PHP

Un'interfaccia definisce un contratto: un elenco di firme di metodi che le classi che la implementano devono fornire. A differenza delle classi astratte, una classe può implementare più interfacce.

Concetti chiave

Concetti chiave:

  • Si dichiara con interface Name {}
  • I metodi non hanno un corpo, ma solo firme
  • Si implementa con implements InterfaceName
  • Una classe può implementare più interfacce

Definizione di un'interfaccia

Esempio:

<?php
interface Serializable {
    public function serialize(): string;
    public function unserialize(string $data): void;
}

interface Loggable {
    public function toLog(): string;
}

// Implementing both interfaces:
class Event implements Serializable, Loggable {
    public function __construct(private string $type, private string $data) {}
    public function serialize(): string { return json_encode(['type'=>$this->type,'data'=>$this->data]); }
    public function unserialize(string $d): void { $a = json_decode($d,true); $this->type=$a['type']; $this->data=$a['data']; }
    public function toLog(): string { return "[{$this->type}] {$this->data}"; }
}

L'interfaccia come tipo

Continuazione:

<?php
interface Cache {
    public function get(string $key): mixed;
    public function set(string $key, mixed $val, int $ttl = 0): void;
    public function delete(string $key): void;
}

// Function accepts any Cache implementation:
function loadUser(int $id, Cache $cache): array {
    $key = "user:$id";
    $user = $cache->get($key);
    if (!$user) {
        $user = fetchFromDb($id);
        $cache->set($key, $user, 3600);
    }
    return $user;
}

Costanti delle interfacce

Maggiore approfondimento:

<?php
interface HttpMethods {
    const GET    = 'GET';
    const POST   = 'POST';
    const PUT    = 'PUT';
    const DELETE = 'DELETE';
}

class Router implements HttpMethods {
    public function addRoute(string $method, string $path, callable $handler): void {
        // ...
    }
}

$router = new Router();
$router->addRoute(HttpMethods::GET, '/users', fn() => []);

Interfaccia che estende un'interfaccia

Utilizzo pratico:

<?php
interface Readable {
    public function read(): string;
}

interface Writable {
    public function write(string $data): void;
}

// Interface can extend multiple interfaces:
interface ReadWrite extends Readable, Writable {
    public function seek(int $position): void;
}

class FileStream implements ReadWrite {
    public function read(): string    { return ''; }
    public function write(string $d): void { }
    public function seek(int $p): void { }
}

Iniezione delle dipendenze con le interfacce

Avanzato:

<?php
interface MailerInterface {
    public function send(string $to, string $subject, string $body): bool;
}

class SmtpMailer implements MailerInterface {
    public function send(string $to, string $subject, string $body): bool {
        // real SMTP send
        return true;
    }
}

class UserService {
    public function __construct(private MailerInterface $mailer) {}

    public function register(string $email): void {
        // save user...
        $this->mailer->send($email, 'Welcome!', 'Thanks for joining.');
    }
}

Pattern

I pattern comuni delle interfacce di PHP vengono usati per risolvere in modo chiaro problemi di progettazione ricorrenti. Li applichi in modo coerente per ottenere codice leggibile e facile da mantenere.

Quando utilizzarle

Sapere quando applicare le interfacce di PHP è importante quanto sapere come farlo. Un uso eccessivo porta alla complessità, mentre un uso insufficiente porta alla duplicazione.

Esempio del mondo reale

Nelle applicazioni reali, le interfacce di PHP compaiono frequentemente nei framework, negli ORM e nei livelli di servizio. Comprenderle La prepara a contribuire a progetti PHP professionali.

Errori comuni

Eviti questi errori con le interfacce di PHP:

  • Le classi possono implementare più interfacce, ma possono estendere una sola classe
  • Le interfacce non possono avere proprietà o corpi dei metodi (tranne le implementazioni predefinite in PHP 8)
  • Programmi sempre verso un'interfaccia (tipo astratto), non verso un'implementazione
  • Utilizzi le interfacce per abilitare l'iniezione delle dipendenze e il mocking nei test

Verifica rapida

Quante interfacce può implementare contemporaneamente una classe PHP?

Riepilogo: Interfacce di PHP

Riepilogo:

  • Le classi possono implementare più interfacce, ma possono estendere una sola classe
  • Le interfacce non possono avere proprietà o corpi dei metodi (tranne le implementazioni predefinite in PHP 8)
  • Programmi sempre verso un'interfaccia (tipo astratto), non verso un'implementazione
  • Utilizzi le interfacce per abilitare l'iniezione delle dipendenze e il mocking nei test

Domande Frequenti

La lezione «Implementazione delle interfacce» è gratuita?

Sì — il testo completo di «Implementazione delle interfacce» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso PHP Academy, passa a CoddyKit PRO. Il corso PHP Academy include 4 lezioni in totale.

Cosa imparerò in «Implementazione delle interfacce»?

Definire contratti con interface e implementarli in più classi. Eserciti PHP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare PHP Academy?

Non è richiesta alcuna esperienza precedente. PHP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Implementazione delle interfacce»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione PHP Academy?

Sì. Ogni lezione PHP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Estensione delle classi con l'ereditarietà
  2. Classi e metodi astratti
  3. Implementazione delle interfacce
  4. Trait per il riutilizzo del codice
← Torna a PHP Academy