踩坑
方法:sql_autoload(ext_name])
其中$class為傳入的類名墓贿,由于歷史習(xí)慣愿意祥款,他會(huì)將類名強(qiáng)制轉(zhuǎn)換為小寫進(jìn)行加載较锡,也就是說文件名不能出現(xiàn)大寫完残,假如需要使用spl_autoload方法則類文件名稱必須小寫了伏钠。假如一定要有大寫字母的解決辦法就是解決spl_autoload方法(即:老子不用它),可以使用__autoload或者incloud_once代替谨设。
基于spl_autoload_register 的自動(dòng)裝載類
<?php
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 ( get_include_path () . 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 );
}
}