AutoLoader.class.php 1.16 KB
<?php

class AutoLoader
{
    public function __construct()
    {
        spl_autoload_register(array($this, 'load'));
        // spl_autoload_register(array($this, 'loadComplete'));
    }

    // This method will be automatically executed by PHP whenever it encounters an unknown class name in the source code
    private function load($className)
    {
        if (in_array($className.'.class.php', scandir("model"))) {
            require_once "model/$className.class.php";
            if (is_readable("sql/$className.sql.php")) {
                require_once "sql/$className.sql.php";
            }
        }

        if (in_array($className.'.class.php', scandir("classes"))) {
            require_once "classes/$className.class.php";
        }
        
        if (in_array($className.'.class.php', scandir("controller"))) {
            require_once "controller/$className.class.php";
        }


        // TODO : compute path of the file to load (cf. PHP function is_readable)
        // it is in one of these subdirectory '/classes/', '/model/', '/controller/'
        // if it is a model, load its sql queries file too in sql/ directory
    }
}

$__LOADER = new AutoLoader();