Melaksanakan Antara Muka
Tentukan kontrak dengan interface dan laksanakannya dalam berbilang kelas.
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
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
- Melanjutkan Kelas dengan Pewarisan
- Kelas dan Kaedah Abstrak
- Melaksanakan Antara Muka
- Trait untuk Guna Semula Kod