Pada tutorial belajar PHP kali ini, kita akan membahas tentang yang namanya Interface dalam PHP. Apa itu interface?

Interface bisa dibilang sebagai sebuah kerangka deskripsi tentang apa yang bisa dilakukan oleh sebuah class. Jadi ketika sebuah class implement sebuah interface, maka class tersebut harus mendeklarasikan setiap public function yang ada di interface tersebut.

Artikel ini bertujuan agar kalian bisa lebih mengerti apa itu interface dan bagaimana cara memakainya. Sebelum itu, saya harap kalian sudah mengerti apa itu OOP (Object Oriented Programming) dan konsep tentang inheritance atau pewarisan.

Interface bisa digunakan untuk:

  1. Mendeklarasikan public function untuk sebuah class.
  2. Mendeklarasikan constant dari sebuah class.

Tapi interface tidak bisa:

  1. Menginisialisasi dirinya sendiri. Oleh karena itu butuh di implement oleh class lain.
  2. Mendifinisakan private atau protected method.
  3. Mendefinisikan property / variable dari sebuah class.

Apa Manfaat Dari Interface?

Saya kutip dari php.net, interface itu memiliki 2 tujuan utama yaitu:

  1. Untuk memungkinkan pengembang membuat objek dari kelas yang berbeda yang dapat digunakan secara bergantian karena mereka mengimplementasikan interface yang sama. Contohnya seperti layanan akses database, beberapa gateway pembayaran, atau strategi caching yang berbeda. Implementasi yang berbeda dapat ditukar tanpa memerlukan perubahan apa pun pada kode yang menggunakannya.

  2. Untuk mengizinkan suatu fungsi atau metode menerima dan beroperasi pada parameter yang sesuai dengan interface, sementara tidak peduli apa lagi yang mungkin dilakukan objek atau bagaimana implementasinya. Interface ini sering dinamai seperti Iterable, Cacheable, Renderable, atau sebagainya untuk menggambarkan tujuannya.

Menurut saya, manfaat yang sering dirasakan saat menggunakan interface adalah bisa memberi tahu anggota team function apa saja yang harus ada dalam sebuah class, sehingga mereka tidak asal membuat public function.

Contoh Penggunaan Interface

Untuk menulis sebuah interface, kalian hanya butuh menulis nama interface dan nama public methodnya saja.

<?php

interface Template
{
    public function setName($name);
    public function getName();
}

Contoh diatas adalah sebuah interface dengan nama Template . Bagaimana cara menggunakan interface di atas?

Untuk memanggil interface, sebuah class hanya perlu meng implemets interface tersebut.

Lihat contoh di bawah.

class MainTemplate implements Template
{
    public $name;

    public function setName($name){
        $this->name = $name;
    }
    public function getName(){
        return $this->name;
    }
}

Jadi class MainTemplate implements interface Template sehingga class MainTemplate harus mendeklarasikan 2 public function yaitu setName dan getName.

Jika tidak maka, class tersebut akan menjadi error.

Penggunaan Banyak Interface

Sebuah class, bisa memiliki lebih dari 1 interface. Lalu bagaimana caranya agar sebuah class memiliki lebih dari 1 interface?

Perhatikan contoh dibawah ini.

interface Pertama {
    public function a();
}

interface Kedua {
    public function b();
}

interface Ketiga {
    public function c();
}

Untuk implement lebih dari 1 interface, kamu bisa menambah interface dengan yang lainnya dengan tanda koma (,).

class Testing implements Pertama, Kedua, Ketiga {
    public function a(){

    }
    public function b(){

    }
    public function c(){

    }
}

Jadi itulah penjelasan singkat tentang apa itu interface dan implementasinya dalam PHP. Semoga membantu ya :D