PHP Academy · Pelajaran

Melaksanakan Antara Muka

Tentukan kontrak dengan interface dan laksanakannya dalam berbilang kelas.

Pelajaran 3 daripada 413 langkah

Melaksanakan Antara Muka ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.

Pengenalan: Antara Muka PHP

Antara muka mentakrifkan kontrak: senarai tandatangan kaedah yang mesti disediakan oleh kelas yang melaksanakannya. Tidak seperti kelas abstrak, sesebuah kelas boleh melaksanakan berbilang antara muka.

Konsep Utama

Konsep utama:

  • Isytiharkan dengan interface Name {}
  • Kaedah tidak mempunyai badan — hanya tandatangan
  • Laksanakan dengan implements InterfaceName
  • Sesebuah kelas boleh melaksanakan berbilang antara muka

Mentakrifkan Antara Muka

Contoh:

<?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}"; }
}

Antara Muka sebagai Jenis

Sambungan:

<?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;
}

Pemalar Antara Muka

Lebih mendalam:

<?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() => []);

Antara Muka yang Melanjutkan Antara Muka

Penggunaan praktikal:

<?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 { }
}

Suntikan Kebergantungan dengan Antara Muka

Lanjutan:

<?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.');
    }
}

Corak

Corak Antara Muka PHP yang lazim digunakan untuk menyelesaikan masalah reka bentuk berulang dengan kemas. Gunakannya secara konsisten untuk menghasilkan kod yang mudah dibaca dan diselenggara.

Bila Hendak Menggunakannya

Mengetahui bila hendak menggunakan Antara Muka PHP sama pentingnya dengan mengetahui caranya. Penggunaan berlebihan membawa kepada kerumitan; penggunaan yang terlalu sedikit membawa kepada penduaan.

Contoh Dunia Sebenar

Dalam aplikasi sebenar, Antara Muka PHP kerap muncul dalam rangka kerja, pemetaan hubungan objek (ORM) dan lapisan perkhidmatan. Memahaminya menyediakan anda untuk menyumbang kepada projek PHP profesional.

Kesilapan Lazim

Elakkan kesilapan ini berkaitan Antara Muka PHP:

  • Kelas boleh melaksanakan berbilang antara muka tetapi hanya boleh melanjutkan satu kelas
  • Antara muka tidak boleh mempunyai properti atau badan kaedah (kecuali pelaksanaan lalai dalam PHP 8)
  • Sentiasa bina atur cara berdasarkan antara muka (jenis abstrak), bukan pelaksanaan
  • Gunakan antara muka untuk membolehkan suntikan kebergantungan dan simulasi dalam ujian

Semakan Pantas

Berapa banyak antara muka yang boleh dilaksanakan oleh sesebuah kelas PHP pada satu masa?

Imbas Kembali: Antara Muka PHP

Ringkasan:

  • Kelas boleh melaksanakan berbilang antara muka tetapi hanya boleh melanjutkan satu kelas
  • Antara muka tidak boleh mempunyai properti atau badan kaedah (kecuali pelaksanaan lalai dalam PHP 8)
  • Sentiasa bina atur cara berdasarkan antara muka (jenis abstrak), bukan pelaksanaan
  • Gunakan antara muka untuk membolehkan suntikan kebergantungan dan simulasi dalam ujian
Percuma untuk bermula

Pelajari PHP dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
49
Pelajaran
195

Soalan Lazim

Adakah pelajaran “Melaksanakan Antara Muka” percuma?

Ya — teks penuh “Melaksanakan Antara Muka” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Melaksanakan Antara Muka”?

Tentukan kontrak dengan interface dan laksanakannya dalam berbilang kelas. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Melaksanakan Antara Muka” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Melanjutkan Kelas dengan Pewarisan
  2. Kelas dan Kaedah Abstrak
  3. Melaksanakan Antara Muka
  4. Trait untuk Guna Semula Kod
← Kembali ke PHP Academy