<?php教程
include("core/ini.php");
initializer::initialize();
$router = loader::load("router");
dispatcher::dispatch($router);
這個文件就只有4句,我們現在一句句來分析。
include(”core/ini.php”);
我們來看core/ini.php
<?php
set_include_path(get_include_path() . path_separator . "core/main");
//set_include_path — sets the include_path configuration option
function __autoload($object){
require_once("{$object}.php");
}
這個文件首先設置了include_path,也就是我們如果要找包含的文件,告訴系統在這個目錄下查找。其實我們定義__autoload()方法,這個方法是在php5增加的,就是當我們實例化一個函數的時候,如果本文件沒有,就會自動去加載文件。官方的解釋是:
接下來我們看下面一句
initializer::initialize();
這就話就是調用initializer類的一個靜態函數initialize,因為我們在ini.php,設置了include_path,以及定義了__autoload,所以程序會自動在core/main目錄查找initializer.php.
initializer.php文件如下:
<?php
class initializer
{
public static function initialize() {
set_include_path(get_include_path().path_separator . "core/main");
set_include_path(get_include_path().path_separator . "core/main/cache");
set_include_path(get_include_path().path_separator . "core/helpers");
set_include_path(get_include_path().path_separator . "core/libraries");
set_include_path(get_include_path().path_separator . "app/controllers");
set_include_path(get_include_path().path_separator."app/models");
set_include_path(get_include_path().path_separator."app/views");
//include_once("core/config/config.php");
}
}
?>
這個函數很簡單,就只定義了一個靜態函數,initialize函數,這個函數就是設置include_path,這樣,以後如果包含文件,或者__autoload,就會去這些目錄下查找。
ok,我們繼續,看第三句
$router = loader::load(”router”);
1 2 3