Tutorial PHP : spl_auto_load_register


Dalam contoh kasus tertentu ketika misal aplikasi yang kita buat bekerja dengan melibatkan banyak file yang berbeda maka tentunya akan selalu ada pemanggilan ke file - file yang dibutuhkan, misalnya cara sederhannya menggunakan struktur kontrol sisip file seperti include, include_once atau require, require_once. Tetapi hal tersebut dirasa kurang epektif terutama jika kita bekerja dengan banyak file, akan selalu ada parameter include/require yang dipanggil setiap kali misal Anda membutuhkan file/modul untuk menjalankan fungsi tertentu, sebenarnya sah - sah saja tetapi bayangkan jika ada 100 file, maka anda harus mengulang perintah sisip file sebanyak 100 kali pemanggilan, selain merepotkan juga terlihat kurang bagus/terstruktur dalam pengkodeannya.

Untuk mengatasi hal tersebut Anda bisa menggunakan fungsi spl_auto_load_register(). Sederhanya fungsi tersebut dapat meload otomatis setiap path/file yang dibutuhkan ketika class dicetak ke objek. Tetapi tentu saja nantinya Anda perlu mengelompokan modul yang anda buat di dalam sebuah class, dan menurut saya ini tidak masalah, karena fungsi yang kita buat justru jadi lebih tersetruktur. Cara ini menurut saya cukup sederhana, dalam tingkat framework misalnya, fungsi autoload file ini bisa sangat kompleks.

Berikut ini saya contohkan penggunaan fungsi php spl_auto_load_register().

spl auto load register
Misal saya punya struktur direktori seperti gambar diatas




<?php
# Anda bisa membuat daftar fungsi yang memuat setiap modul
# yang diletakan pada path yang berbeda - beda

function load_modul1($class)
{
	//letak path/file yang akan di load
	$path = __DIR__.'/../modul/modul1/'.$class.'.php';
	if(is_readable($path))
	{
		require $path;
	}
}
function load_modul2($class)
{
	$path = __DIR__.'/../modul/modul2/'.$class.'.php';
	if(is_readable($path))
	{
		require $path;
	}
}
spl_autoload_register("load_modul1");
spl_autoload_register("load_modul2");
$obj1 = new Kelas1;
$obj2 = new Kelas2; 

?>


Dalam contoh penggunaan yang sederhana, Anda hanya tinggal memanggil autoloader file ke index file.

Dari contoh script diatas mungkin kita masih berpikir untuk menggunakan cara biasa, misalnya require_once dan memasukan setiap fungsi menajdi satu class, tapi bayangkan jika misal ada 8 fungsi/class didalam modul satu, maka Anda akan mengulang - ngulang perintah require_once untuk memanggil setiap file yang berbeda untuk digunakan bandingkan dengan menggunakan autoloader, Anda hanya perlu mencetak nama kelasnya tanpa perlu mendefinisikan ulang dimana letak path atau filenya.

0 Response to " Tutorial PHP : spl_auto_load_register"

Post a Comment

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin