PSR4Autoloader PHP
Berikut ini merupakan contoh autoloader yang saya gunakan dalam projek php native saya, dimana autoloader ini khusus untuk meload module - module atau controller yang telah saya buat. Sedangkan untuk meload plugins atau library eksternal, saya menggunakan autoloader dari composer, jadi dalam projek terbaru php native saya kini terdapat dua buah autoloder, autoloader dari composer dari psr4autoloader untuk meload atau memanggil class - class didalam controller
Contoh
<?php
// src/autoload/autoload.php
spl_autoload_register(function ($class) {
$prefix = ''; //bisa pake prefik jika mau
$base_dir =
array(
__DIR__ . '/../',
__DIR__.'/../../', //for db
);
//contoh struktur direkotir untuk controller
/**
- app
- Model
- Controller
- config - for db
**/
$len = strlen($prefix);
if (strncmp($prefix, $class, $len) !== 0) {
return;
}
$relative_class = substr($class, $len);
foreach($base_dir as $list)
{
$file = $list . str_replace('\\', '/', $relative_class) . '.php';
if (file_exists($file)) {
require $file;
}
}
});
Jadi untuk autoloader composer sendiri tidak perlu saya jelaskan, karena biasanya akan otomatis tersedia ketika anda melakukan require ke library php tertentu.
PSR4Autoloader diatas merupakan standar autoloader psr4, silahkan untuk lebih detailnya cek di github
Bahasa dewa nih buat kami yang gak punya basic programmer hehe
ReplyDelete