簡單實現PHP路由和類自動載入

2021-08-01 17:52:35 字數 1436 閱讀 7147

專案目錄如下

入口檔案index.php 

<?php 

define('webroot', 'c:/users/administrator/documents/netbeansprojects/test');

require_once(webroot.'/core/environment.php');

類自動載入檔案environment.php

<?php 

//根據類名來include檔案

class loader

}static function filepath($name, $ext = '.php')

$file = str_replace('__', '/', $name) . $ext; //類名轉路徑

$path .= webroot . '/' . $file;

if (file_exists($path))

return null;

}}spl_autoload_register('loader::load');

<?php 

static function run() elseif ($count == 1) else

$filename = webroot . '/controller/' . $controller . '.php';

$controller = 'controller__'.$controller;

try

include($filename);

if (!class_exists($controller))

$obj = new reflectionclass($controller);

if (!$obj->hasmethod($method))

} catch (exception $e)

$newobj = new $controller();

call_user_func_array(array($newobj, $method), $params);}}

根據請求uri去找對應的controller, 用call_user_func_array()的方式呼叫controller裡的方法

根目錄/controller/test.php 

<?php 

class controller__test

}

這裡其實呼叫不一定要呼叫model裡的test方法,可以調model目錄下的任意檔案,在此之前可以去都讀一些config檔案等等操作。

根目錄/model/test.php

<?php 

class model__test

}

php自動載入類,php自動載入的兩種實現方法

php自動載入的兩種實現方法,需要的朋友可以參考下。php自動載方法有兩種.第一種方案用 autoload,這個函式較簡單,也較弱.但有一問題沒有解決,就是在include前判斷檔案是否存在的問題.set include path aa path separator get include path...

php自動載入類

php類的自動載入機制 php的自動載入 在php5以前,我們要用某個類或類的方法,那必須include或者require,之後才能使用,每次用乙個類,都需要寫一條include,麻煩 php作者想簡單點,最好能引用乙個類時,如果當前沒有include進來,系統能自動去找到該類,自動引進 於是 au...

PHP 自動載入類

在專案開發中,因為乙個檔案中只能寫乙個類,並且在執行過程中會有很多的類參與,如果乙個乙個的載入很麻煩,所以,就需要乙個機制實現在php執行過程中自動載入需要的類。1.2.1 類的規則 乙個檔案中只能放乙個類 必須 檔名和類名同名 必須 類檔案以.class.php結尾 不是必須 1.2.2 手動載入...