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

1 Response to "PSR4Autoloader PHP"

  1. Bahasa dewa nih buat kami yang gak punya basic programmer hehe

    ReplyDelete

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin