0Pricing
PHP Academy · Pelajaran

Mengimplementasikan Interface

Definisikan kontrak dengan interface dan implementasikan pada beberapa class.

Mengimplementasikan Interface adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.

Pendahuluan: Antarmuka PHP

Antarmuka mendefinisikan kontrak: daftar tanda tangan metode yang harus disediakan oleh kelas yang mengimplementasikannya. Tidak seperti kelas abstrak, suatu kelas dapat mengimplementasikan beberapa antarmuka.

Konsep Utama

Konsep utama:

  • Dideklarasikan dengan interface Name {}
  • Metode tidak memiliki isi — hanya tanda tangan
  • Diimplementasikan dengan implements InterfaceName
  • Satu kelas dapat mengimplementasikan beberapa antarmuka

Mendefinisikan Antarmuka

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

Antarmuka sebagai Tipe

Kelanjutan:

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

Konstanta Antarmuka

Pendalaman:

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

Antarmuka yang Memperluas Antarmuka

Penggunaan praktis:

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

Injeksi Dependensi dengan Antarmuka

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

Pola

Pola antarmuka PHP yang umum digunakan untuk menyelesaikan masalah desain berulang secara rapi. Terapkan pola tersebut secara konsisten agar kode mudah dibaca dan dipelihara.

Kapan Menggunakannya

Mengetahui kapan menerapkan antarmuka PHP sama pentingnya dengan mengetahui caranya. Penggunaan berlebihan menimbulkan kompleksitas, sedangkan penggunaan yang terlalu sedikit menimbulkan duplikasi.

Contoh di Dunia Nyata

Dalam aplikasi nyata, antarmuka PHP sering digunakan dalam kerangka kerja, ORM, dan lapisan layanan. Memahaminya akan mempersiapkan Anda untuk berkontribusi pada proyek PHP profesional.

Kesalahan Umum

Hindari kesalahan berikut saat menggunakan antarmuka PHP:

  • Kelas dapat mengimplementasikan beberapa antarmuka, tetapi hanya dapat memperluas satu kelas
  • Antarmuka tidak dapat memiliki properti atau isi metode (kecuali implementasi bawaan dalam PHP 8)
  • Selalu buat program berdasarkan antarmuka (tipe abstrak), bukan implementasi
  • Gunakan antarmuka untuk memungkinkan injeksi dependensi dan simulasi dalam pengujian

Pemeriksaan Singkat

Berapa banyak antarmuka yang dapat diimplementasikan oleh satu kelas PHP secara bersamaan?

Ringkasan: Antarmuka PHP

Ringkasan:

  • Kelas dapat mengimplementasikan beberapa antarmuka, tetapi hanya dapat memperluas satu kelas
  • Antarmuka tidak dapat memiliki properti atau isi metode (kecuali implementasi bawaan dalam PHP 8)
  • Selalu buat program berdasarkan antarmuka (tipe abstrak), bukan implementasi
  • Gunakan antarmuka untuk memungkinkan injeksi dependensi dan simulasi dalam pengujian

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mengimplementasikan Interface” gratis?

Ya — teks lengkap “Mengimplementasikan Interface” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mengimplementasikan Interface”?

Definisikan kontrak dengan interface dan implementasikan pada beberapa class. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai PHP Academy?

Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Mengimplementasikan Interface” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Memperluas Class dengan Pewarisan
  2. Class dan Method Abstrak
  3. Mengimplementasikan Interface
  4. Trait untuk Penggunaan Ulang Kode
← Kembali ke PHP Academy