熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

解析php類的注冊與自動加載

2013-11-15 12:11:26  來源: JSP教程 
本篇文章是對php類的注冊與自動加載進行了詳細的分析介紹需要的朋友參考下  

  工程目錄如下



將需要注冊的類放在一個數組中

復制代碼 代碼如下:
<?php
final class Utils {
    private function __construct() {
    }
    public static function getClasses($pre_path = /) {
        $classes = array(
                DBConfig => $pre_pathDBConfig/DBConfigphp
                User => $pre_pathModel/Userphp
                Dao => $pre_pathDao/Daophp
                UserDao => $pre_pathDao/UserDaophp
                UserMapper => $pre_pathMapping/UserMapperphp
        );
        return $classes;
    }
}
?>

  
注冊數組
注意
步驟中的類的路徑都是相對於initphp而言的不是相對於Utils而言的這是因為我們通過initphp裡的自動加載函數spl_autoload_register來require類的

復制代碼 代碼如下:
<?php
require_once /Utils/Utilsphp;
final class Init {

    /**
     * System config
     */
    public function init() {
        // error reporting all errors for development (ensure you have
        // display_errors = On in your phpini file)
        error_reporting ( E_ALL | E_STRICT );
        mb_internal_encoding ( UTF );
        //registe classes
        spl_autoload_register ( array ($thisloadClass ) );
    }

    /**
     * Class loader
     */
    public function loadClass($name) {
        $classes = Utils::getClasses ();
        if (! array_key_exists ( $name $classes )) {
            die ( Class " $name " not found );
        }
        require_once $classes [$name];
    }
}
$init = new Init ();
$init>init ();
?>

  
本例中在使用處testphp裡require initphp

復制代碼 代碼如下:

  
<?php
require_once Initphp;
$dao = new UserDao();
$result = $dao>findByName(zcl);
?>


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20464.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.