Hallo sahabat Dumenity berjumpa lagi dalam tutorial kursuswebsite, pada tutorial kali ini kita akan belajar tentang Cara Mengimplementasikan PHP Interfaces. Di PHP, blok interface yang mendeklarasikan seperangkat fungsi yang akan didefinisikan dengan kelas untuk mengimplementasikan interface ini. Sebuah kelas dapat memperpanjang lebih dari satu interface, sehingga kita dapat mensimulasikan banyak inheritances di PHP. Mari kita lihat semuanya, secara rinci dengan artikel ini.
Kelas PHP pengimplementasian Interface
Saat mengimplementasikan interface dengan kelas PHP, kita harus mendefinisikan semua fungsi yang dideklarasikan di interface itu seperti itu, tanpa mengubah argumen, jenis pengembalian, pengubah akses atau apapun.Misalnya, kode berikut memiliki hubungan dengan interface dan kelas PHP untuk menunjukkan bagaimana menerapkan interface untuk kelas.
interface UserInterface { public function setMenu[$menu_array]; public function getContent[$page]; } class WebApp implements UserInterface { public function setMenu[$menu_array] { $menu_bar=""; foreach[$menu_array as $k=>$v] { $menu_bar .="" . $menu_array[$k]["menu_caption"] . " "; } return $menu_bar; } public function getContent[$page] { $content = "Welcome to the " . ucwords[$page] . " page
"; return $content; } }
Pada contoh di atas, kita telah membuat sebuah interface PHP yang diberi nama UserInterface, dan ini diimplementasikan oleh kelas WebApp dengan menggunakan alat bantu kata kunci. Kita bisa mengimplementasikan interface ini, dimanapun kita menginginkan set komponen user interface yang sama yaitu menu dan content untuk aplikasi web kita.
php_interface
Sementara implementasi interface di atas, dua fungsi yang dideklarasikan di UserInterface telah didefinisikan di kelas yang mengimplementasikannya. Sementara menentukan, jika salah satu dari fungsi tersebut, atau tanda tangan apapun, seperti argumen, jenis pengembalian diubah, maka akan menyebabkan beberapa kesalahan PHP. Misalnya, jika kelas WebApp tidak memiliki getContent [] definisi, maka, kesalahannya adalah,
Fatal error: Class WebApp contains 1 abstract method and must therefore be declared abstract or implement the remaining methods [UserInterface::getContent] in ...
Oke itulah tadi pembahasan saya tentang Cara Mengimplementasikan PHP Interfaces. Semoga bermnafaat.
You are here: Home / PHP / Tutorial PHP OOP Part 14 : Menggunakan Interface dan Implements
Interface yang saya maksud disini adalah sebutan singkat saya untuk Object Interface. Interface merupakan istilah untuk konsep yang akan
diimplementasi pada class. interface mengijinkan kita membuat method yang harus diimplementasi pada class tanpa harus mendefinisikan bagaimana isi dari method tersebut. Sekilas Interface memang mirip dengan class abstrak, namun prinsip dan penerapannya berbeda karena Interface memang bukan sebuah class. Interface lebih bertujuan membuat konsep method yang seragam dari pada membuat kerangka class seperti class abstrak. Untuk membuat interface kita menggunakan
keyword “interface”, diikuti dengan nama interface kemudian sepasang kurung kurawal {} yang berisi konsep-konsep method yang akan diimplementasi nantinya. Contoh membuat interface untuk class Rumus: Untuk mengimplementasi interface pada class, kita menggunakan keyword “implements” dibelakang nama class. jika sebuah class mengimplementasi interface, maka pada class tersebut harus mengimplementasi
semua method yang ada pada interface.Membuat Interface
Mengimplementasi Interface
Contoh :
Hal-hal yang perlu diperhatikan dalam menggunakan Interface dan Implements
Dalam menggunakan interface dan implements ada beberapa aturan dan kondisi yang harus kita patuhi, diantaranya :
1. Nama class tidak boleh sama dengan nama interface
Hal ini karena PHP mendeteksi interface sebagai class, meskipun pada kenyataannya hanya berupa konsep saja. Jika nama class dan interface sama maka akan muncul error “Fatal error: Cannot redeclare class”, artinya ada pendeklarasian class kembali.
Jika script diatas dijalankan maka akan tampil error berikut ini :
Fatal error: Cannot redeclare class Rumus in /home/sabrina/www/php/index.php on line 8
2. Method pada interface harus diset public
Karena sifatnya yang terbuka dan harus diimplementasi maka semua method pada interface harus diset public atau tidak ditulis sama sekali [sama juga berarti public]. Jika diset private atau protected akan muncul error “Fatal error: Access type for interface method”.
Jika script diatas dijalankan maka akan tampil error berikut ini :
Fatal error: Access type for interface method konsepRumus::luas_persegi[] must be omitted in /home/sabrina/www/php/index.php on line 3
3. Interface tidak boleh memiliki method normal
Sebagaimana fungsi interface yang bertujuan membuat konsep bukan class, maka pada interface tidak boleh ada method normal. Hal inilah salah satu yang membedakan antara interface dan class abstrak.
Jika hal ini terjadi akan muncul error “Fatal error: Interface function cannot contain body “.
Jika script diatas dijalankan maka akan tampil error berikut ini :
Fatal error: Interface function konsepRumus::luas_segitiga[] cannot contain body in /home/sabrina/www/php/index.php on line 6
4. Interface bisa diturunkan
Seperti halnya class, interface juga bisa diturunkan. Untuk membuat interface turunan kita juga menggunakan keyword extends seperti pada class.
5. Interface bisa memiliki konstanta
Interface juga bisa memiliki konstanta seperti class. Untuk mengakses konstanta pada interface sama dengan mengakses konstanta pada umumnya yaitu menggunakan operator :: [titik dua ditulis dobel].
6. Sebuah class bisa mengimplementasi banyak interface sekaligus
Jika pada abstrak berlaku satu class abstrak untuk satu class, maka pada interface tidak. Kita bisa mengimplementasi beberapa interface sekaligus dalam satu class.
Referensi :
- //php.net/manual/en/language.oop5.interfaces.php
- //www.duniailkom.com/tutorial-belajar-oop-php-pengertian-object-interface-dalam-pemrograman-berbasis-objek/