日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

自已編寫基于MVC的php超輕量級開發(fā)框架 [轉(zhuǎn)]

 朝聞書齋 2014-09-11

一.文件結(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)
二.簡單類圖
三. 入口文件,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ù)你的入品文件存放來定義,如果放在子目錄下,則要做相應(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í)列化請求類 用于獲取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;

}

}

?>

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多