|
一.文件結(jié)構(gòu) ├ index.php 入口文件
├ class 類存放的文件夾
├ base.class.php 基類
├ error.class.php 錯(cuò)誤處理類
├ parms.class.php 獲取參數(shù)類
├ control.class.php 控制類
├ model.class.php 模型類
├ template smartTemplate 類存放文件夾
├ db adodb 類存放文件夾
├ includes 包含文件類
├ defines.inc.php 定義各路徑文件
├ frameword.inc.php 框架處理文件
├ router.inc.php 路由文件,跟據(jù)參數(shù),跳轉(zhuǎn)不同路徑
├ models 模式存放路徑
├ views 模版文件保存路徑
├ controls 存放控制類的文件夾
├ config.php 配置文件
├ admin 后臺(tái)
├
├
二.簡(jiǎn)單類圖
![]() 三. 入口文件,index.php
<?php![]() define("EXEC",1); //初始化一個(gè)常量,保存別的文件必須先有這個(gè)入口文件的引用.![]() define('PATH_BASE',dirname(__FILE__)); //獲取入口文件的路徑![]() define('DS', DIRECTORY_SEPARATOR); //目錄的分隔,’/’ 或’’![]() define( 'PATH_ROOT', PATH_BASE ); //站點(diǎn)的跟目錄,跟據(jù)你的入品文件存放來(lái)定義,如果放在子目錄下,則要做相應(yīng)修改.如下, //把路徑分組 {parts = explode( DS, PATH_BASE ); //去除最后一個(gè)路徑名 array_pop( parts );![]() define( 'PATH_ROOT', implode( DS, parts ) );}![]() require_once(PATH_ROOT.DS.'includes'.DS.'defines.inc.php'); //各文件夾的路徑 require_once(PATH_ROOT.DS.'includes'.DS.'framework.inc.php');![]() echo request->Get('a');//參數(shù)的獲取GET方法 request->Post(‘a(chǎn)’);//獲取POST參數(shù)![]() ?>![]() 四. 路徑定義文件 defines.inc.php
<?php /* */ // no direct access defined( 'EXEC' ) or die( 'Restricted access' ); //如果單獨(dú)執(zhí)行這個(gè)文件,將不能執(zhí)行![]() //站點(diǎn)路徑 define( 'PATH_SITE', PATH_ROOT ); //包含文件路徑 define( 'PATH_INCLUDE', PATH_ROOT.DS.'includes'); //類文件路徑 define( 'PATH_CLASS', PATH_ROOT.DS.'class' ); //配置文件路徑 define( 'PATH_CONFIG', PATH_ROOT );![]() ?>![]() 五. 框架文件路徑 frameword.inc.php
f
<?php![]() // no direct access defined( 'EXEC' ) or die( 'Restricted access' );![]() //load error class require_once( PATH_CLASS.DS.'error.class.php'); //包含錯(cuò)誤處理文件 //load base class require_once( PATH_CLASS.DS.'base.class.php' ); //包含基類文件![]() //實(shí)例化基類 load=new Base();![]() //實(shí)列化請(qǐng)求類 用于獲取GET或POST //加截一個(gè)自己寫的類的方法 //把自己寫的類放在class 文件夾下面,文件名的格式為demo.class.php //那么類名就為 class demo{} //實(shí)便化的方式為demo=load->library(‘demo’); //調(diào)用demo類的Get函數(shù)則為 demo->Get(‘參數(shù)’);![]() request=load->library('params'); //不同的目錄用不同的URL方式 require_once( PATH_BASE.DS.'includes'.DS.'router.inc.php' );![]() ?>![]() 六. 基類函數(shù)包含了常用的功能 base.class.php
<?php![]() // no direct access defined( 'EXEC' ) or die( 'Restricted access' );![]() class Base extends Error {![]() var path_root =''; var path_class =''; var path_control ='';![]() /*/構(gòu)造函數(shù) *@parame path 應(yīng)用路徑 *return null */ public function Base() { this->path_root =PATH_ROOT; this->path_class =PATH_CLASS; this->path_control=PATH_BASE.DS.'controls'; }![]() //加載模型 //load model function model(name) { include_once (this->path_model.DS.name.'.php');![]() model=null; if(model==null) { model=new name(); } return model;![]() }![]() //output page /* *@paramater name file name *@paramater data replace * */ function view(name,data) { Template=self::template(file); Template->output(data); unset(Template); }![]() //create database connection function database() { include_once (PATH_CLASS.DS.'db'.DS.'adodb.inc.php'); this->db = ADONewConnection(); this->db->createdatabase = true; result = this->db->Connect(self::config('db_host') , self::config('db_user'), self::config('db_password'), self::config('db_database') ); if(!result) { die("Could not connect to the database."); }else{ this->db->Execute("set names 'utf8'"); return this->db; } }![]() //create template function template(file) { include_once (PATH_CLASS.DS.'template'.DS.'class.smarttemplate.php'); Template = new Smarttemplate(file); Template->template_dir=PATH_BASE.self::config('template_dir'); Template->cache_dir =PATH_BASE.self::config('cache_dir');![]() return Template; }![]() //import class function library(className) { if(empty(className)) { return null; exit(); } else { require_once(PATH_CLASS.DS.className.'.class.php'); return new className();![]() } }![]() //return config value function config(parameter) { require_once(PATH_CONFIG.DS.'config.php');![]() return CONFIG::Ini()->parameter;![]() }![]() }![]() ![]() ?>![]() 七. 控制器父類control.class.php
<?php class Control extends Base { var request; function Control() { this->request=this->library('params'); }![]() //output page /* *@paramater name file name *@paramater data replace * */ function view(name,data='') { Template=this->template(name.'.html'); Template->assign('site_root',this->config('site_root'));![]() Template->assign(data); Template->output(); unset(Template); }![]() //load model function model(name) { include_once (PATH_BASE.DS.'models'.DS.name.'.php'); if(this->model==null) { this->model=new name(); } return this->model; }![]() }![]() ?> |
|
|