PHP OOP: Bu nasıl kod çalışır?

0 Cevap php

Ben tür yeni PHP5/OOP için kulüpler ve gerçekten aşağıdaki kod çalışır etrafında başımı alamıyorum. __ Autoload () fonksiyonu araştırma yaparken PHP.net belgelere buldum.

Bunu nasıl diyeceğim? new MyClass1(); ya da autoloader::model('myModel');?

The snippet:

class autoloader {

    public static $loader;

    public static function init()
    {
        if (self::$loader == NULL)
        self::$loader = new self();

        return self::$loader;
    }

    public function __construct()
    {
        spl_autoload_register(array($this,'model'));
        spl_autoload_register(array($this,'helper'));
        spl_autoload_register(array($this,'controller'));
        spl_autoload_register(array($this,'library'));
    }

    public function library($class)
    {
        set_include_path(get_include_path().PATH_SEPARATOR.'/lib/');
        spl_autoload_extensions('.library.php');
        spl_autoload($class);
    }

    public function controller($class)
    {
        $class = preg_replace('/_controller$/ui','',$class);

        set_include_path(get_include_path().PATH_SEPARATOR.'/controller/');
        spl_autoload_extensions('.controller.php');
        spl_autoload($class);
    }

    public function model($class)
    {
        $class = preg_replace('/_model$/ui','',$class);

        set_include_path( dirname(__FILE__) . PATH_SEPARATOR.'/model/');
        spl_autoload_extensions('.model.php');
        spl_autoload($class);
    }

    public function helper($class)
    {
        $class = preg_replace('/_helper$/ui','',$class);

        set_include_path(get_include_path().PATH_SEPARATOR.'/helper/');
        spl_autoload_extensions('.helper.php');
        spl_autoload($class);
    }

}

0 Cevap