OOP AutoLoad
Halo! Disini saya akan membagikan tentang OOP AutoLoad. Auto load berfungsi agar kita tidak perlu susah payah ketika ingin mengambil/menerapkan method dari suatu class.
Contoh interface
dari contoh diatas terlihat class Template mengimpementasikan interface iTemplate. Interface sendiri merupakan sketsa dasar dari suatu class yang setiap methodnya harus diimplementasikan. Jika ada satu saja method yang tidak diimplementasikan, maka kode tidak akan jalan. Interface juga bisa mewarisi method/properti dari interface lain.
Ada juga contoh interface yang parameternya berisi objek dari class. Contohnya begini:
dalam class c yang mengimplementasikan class b, terdapat public function baz yang parameternya berisi objek dari class lain. Jika parameternya diubah menjadi objek dari class lain, maka kode dibawah ini akan gagal
Interface yang diwarisi oleh interface lain otomatis memiliki method/atribut dari interface lain juga. Makanya, ketika diimplementasikan ke dalam suatu class maka kita juga harus menulis kembali kod eyang ada di interface
Ada juga properti yang tidak bisa diubah valuenya. Cukup ditambahkan keyword const sebelum nama variabel
Jika const b diubah di kelas lain, maka akan terjadi error
Properti juga bisa ditambahkan modifier dengan public, protected, atau private.
Jika modifiernya tidak ditulis maka hasilnya sama dengan public. Modifier berfungdi untuk keamanan data, Public bisa diakses oleh semua class. Private hanya bisa diakses di dalam class yang sama dan protected bisa diakses di dalam class yang sama dan class yang mengimplementasikannya.
Ini adalah contoh pengimplementasian dan hasilnya
Ini adalah contoh pendeklarasian class konstan
Dan dibawah ini contoh lain, dimana kita bisa memasukkan objek dari class ke dalam parameter
Contoh interface
<?php
interface iTemplate{
public function setVar($nama, $var);
public function getHtml($tem);
}
class Template implements iTemplate{
private $vars=array();
public function setVar($nama, $var){
$this->vars[$nama]=$var;
}
public function getHtml($tem){
foreach($this->vars as $nama =>$value){
$tem=str_replace('{'.$nama.'}', $value, $tem);
}
return $tem;
}
}
?>
Ada juga contoh interface yang parameternya berisi objek dari class. Contohnya begini:
<?php
interface a{
public function foo();
}
interface b extends a{
public function baz(Baz $baz);
}
class C implements b
{
public function foo(){}
public function baz(Baz $baz){}
}
?>
class C implements b
{
public function foo(){}
public function baz(Kambing $baz){}
}
Interface yang diwarisi oleh interface lain otomatis memiliki method/atribut dari interface lain juga. Makanya, ketika diimplementasikan ke dalam suatu class maka kita juga harus menulis kembali kod eyang ada di interface
<?php
interface a{
public function foo();
}
interface b{
public function bar();
}
interface c extends a, b{
public function baz();
}
class d implements c
{
public function foo();
public function bar();
public function baz();
}
?>
Ada juga properti yang tidak bisa diubah valuenya. Cukup ditambahkan keyword const sebelum nama variabel
interface a{
const b='Ini Interface Konstan';
}
echo a::b;
Properti juga bisa ditambahkan modifier dengan public, protected, atau private.
public $pablik="Ini public";
protected $protek="Ini Protekted";
private $priv="Ini Private";
Ini adalah contoh pengimplementasian dan hasilnya
<?php
class Bar
{
public function tes(){
$this->tesPublik();
$this->tesPrivate();
}
public function tesPublik(){
echo "Bar::tesPublik\n";
}
private function tesPrivate(){
echo "Bar::tesPrivate\n";
}
}
class Foo extends Bar
{
public function tesPublik(){
echo "Foo::tesPublikFoo\n";
}
private function tesPrivate(){
echo "Foo::tesPrivateFoo\n";
}
}
class myClass
{
public function __construct(){
}
public function myPublic(){
echo "pub";
}
protected function myProtected(){
echo "prot";}
private function myPrivate(){
echo "priv";}
function Foo(){
$this->myPublic();
$this->myProtected();
$this->myPrivate();
}
}
class myClass2 extends myClass
{
function Foo(){
$this->myPublic();
$this->myProtected();
}
}
$tes=new myClass();
$tes->myPublic();
$tes->foo();
$pu=new Foo();
$pu->tes();
?>
Ini adalah contoh pendeklarasian class konstan
<?php
class myClass{
public const myPub='publik';
protected const myPro='protek';
private const myPriv='Privasi';
public function foo(){
echo self::myPub;
echo self::myPro;
echo self::myPriv;
}
}
$tes=new myClass();
$tes->foo();
?>
Dan dibawah ini contoh lain, dimana kita bisa memasukkan objek dari class ke dalam parameter
class test{
private $foo;
public function __construct($foo){
$this->foo=$foo;
}
private function bar(){
echo "Ini masuk ke private";
}
public function baz(test $anu){
$anu->foo='PPPPPPPP';
var_dump($anu->foo);
$anu->bar();
}
}
$tess=new test("TEEEEES");
$tess->baz(new test("Yang Lain"));
Komentar
Posting Komentar