Dalam mengembangkan aplikasi PHP dengan pendekatan Object Oriented Programming atau OOP kita akan memuat class-class. Tentu saja saat kita memanggil class tersebut, class tersebut sudah harus masuk memory untuk digunakan. Pada contoh kali kita akan membuat class Kucing dan class Bebek.

Class Bebek pada file Bebek.php:
<?php
class Bebek
{
    public $jml_kaki=2;
    
    public function getJmlKaki()
    {
        return $this->jml_kaki;
    }
}
?>

Class Kucing pada file Kucing.php:
<?php
class Kucing
{
    public $jml_kaki=4;
    
    public function getJmlKaki()
    {
        return $this->jml_kaki;
    }
}
?>

Misal kita membuat program yang isinya:
<?php
$bebekku = new Bebek;
$kucingku = new Kucing;

echo “Mencoba autoload”;
?>

Jika jalankan maka akan muncul tampilan error yang menunjukkan class Bebek tidak ditemukan. Selanjutnya kita dapat mencoba membuat program yang lain misalnya:
<?php
include “Bebek.php”;
include “Kucing.php”;

$bebekku = new Bebek;
$kucingku = new Kucing;

echo “Mencoba autoload”;
?>
Bisa dipastikan bahwa source di atas dapat berjalan dengan baik karena menginclude kedua class di atas.

Tetapi ternyata masalah tidak sampai di sana. Jika kita meengembangkan aplikasi, kemungkinan kita akan membuat class sebanyak ratusan hingga ribuan class dan kita harus membuat include hingga ribuan baris. Nah di sini tentu akan banyak memakan tenaga dan sumber daya server. Untuk mengatasi hal ini, PHP telah menyediakan solusi autoload di mana class akan otomatis diload saat pertama kali digunakan. Contoh source code untuk autoload dalam contoh di atas adalah:
<?php
spl_autoload_register(function ($class_name) {
    include $class_name . ‘.php’;
});

$bebekku = new Bebek;
$kucingku = new Kucing;

echo “Mencoba autoload”;
?>

Untuk informasi lebih lanjut silahkan mengunjungi:
1. http://php.net/manual/en/language.oop5.autoload.php.
2. http://php.net/manual/en/function.spl-autoload-register.php .

Kunjungi www.proweb.co.id untuk menambah wawasan anda.

Autoload dalam class PHP
× Ada yang dapat saya bantu ? Available on SundayMondayTuesdayWednesdayThursdayFridaySaturday