自已编写基于MVC的php超轻量级开发框架

一.文件结构

├ index.php 入口文件
class 类存放的文件夹
   ├ base.class.php 基类
   ├ error.class.php 错误处理类
   ├ parms.class.php 获取参数类
control.class.php 控制类
model.class.php 模型类
template smartTemplate 类存放文件夹
db adodb 类存放文件夹
includes 包含文件类
├ defines.inc.php 定义各路径文件
   ├ frameword.inc.php 框架处理文件
   ├ router.inc.php 路由文件,跟据参数,跳转不同路径
models 模式存放路径
views 模版文件保存路径
controls 存放控制类的文件夹
config.php 配置文件
admin 后台
二.简单类图
%E6%9C%AA%E5%91%BD%E5%90%8D-1.jpg
三. 入口文件,index.php
None.gif<?php
None.gif
None.gifdefine("EXEC",1); //初始化一个常量,保存别的文件必须先有这个入口文件的引用.
None.gif
None.gifdefine('PATH_BASE',dirname(__FILE__)); //获取入口文件的路径
None.gif
None.gifdefine('DS', DIRECTORY_SEPARATOR); //目录的分隔,’/’ 或’’
None.gif
None.gifdefine( 'PATH_ROOT', PATH_BASE ); //站点的跟目录,跟据你的入品文件存放来定义,如果放在子目录下,则要做相应修改.如下,
None.gif//把路径分组
None.gif{parts = explode( DS, PATH_BASE );
None.gif//去除最后一个路径名
None.gifarray_pop( parts );
None.gif
None.gifdefine( 'PATH_ROOT', implode( DS, parts ) );}
None.gif
None.gifrequire_once(PATH_ROOT.DS.'includes'.DS.'defines.inc.php'); //各文件夹的路径
None.gifrequire_once(PATH_ROOT.DS.'includes'.DS.'framework.inc.php');
None.gif
None.gifecho request->Get('a');//参数的获取GET方法
None.gifrequest->Post(‘a’);//获取POST参数
None.gif
None.gif?>
None.gif
四. 路径定义文件 defines.inc.php
None.gif<?php
None.gif/*
None.gif*/
None.gif// no direct access
None.gifdefined( 'EXEC' ) or die( 'Restricted access' ); //如果单独执行这个文件,将不能执行
None.gif
None.gif//站点路径
None.gifdefine( 'PATH_SITE', PATH_ROOT );
None.gif//包含文件路径
None.gifdefine( 'PATH_INCLUDE', PATH_ROOT.DS.'includes');
None.gif//类文件路径
None.gifdefine( 'PATH_CLASS', PATH_ROOT.DS.'class' );
None.gif//配置文件路径
None.gifdefine( 'PATH_CONFIG', PATH_ROOT );
None.gif
None.gif?>
None.gif
. 框架文件路径 frameword.inc.php
f
None.gif<?php
None.gif
None.gif// no direct access
None.gifdefined( 'EXEC' ) or die( 'Restricted access' );
None.gif
None.gif//load error class
None.gifrequire_once( PATH_CLASS.DS.'error.class.php'); //包含错误处理文件
None.gif//load base class
None.gifrequire_once( PATH_CLASS.DS.'base.class.php' ); //包含基类文件
None.gif
None.gif//实例化基类
None.gifload=new Base();
None.gif
None.gif//实列化请求类 用于获取GET或POST
None.gif//加截一个自己写的类的方法
None.gif//把自己写的类放在class 文件夹下面,文件名的格式为demo.class.php
None.gif//那么类名就为 class demo{}
None.gif//实便化的方式为demo=load->library(‘demo’);
None.gif//调用demo类的Get函数则为 demo->Get(‘参数’);
None.gif
None.gifrequest=load->library('params');
None.gif//不同的目录用不同的URL方式
None.gifrequire_once( PATH_BASE.DS.'includes'.DS.'router.inc.php' );
None.gif
None.gif?>
None.gif
六. 基类函数包含了常用的功能 base.class.php
None.gif<?php
None.gif
None.gif// no direct access
None.gifdefined( 'EXEC' ) or die( 'Restricted access' );
None.gif
None.gifclass Base extends Error
None.gif{
None.gif
None.gif var path_root ='';
None.gif var path_class ='';
None.gif var path_control ='';
None.gif
None.gif /*/构造函数
None.gif *@parame path 应用路径
None.gif *return null
None.gif */
None.gif public function Base()
None.gif {
None.gif this->path_root =PATH_ROOT;
None.gif this->path_class =PATH_CLASS;
None.gif this->path_control=PATH_BASE.DS.'controls';
None.gif }
None.gif
None.gif //加载模型
None.gif //load model
None.gif function model(name)
None.gif {
None.gif include_once (this->path_model.DS.name.'.php');
None.gif
None.gif model=null;
None.gif if(model==null)
None.gif {
None.gif model=new name();
None.gif }
None.gif return model;
None.gif
None.gif }
None.gif
None.gif //output page
None.gif /*
None.gif *@paramater name file name
None.gif *@paramater data replace
None.gif *
None.gif */
None.gif function view(name,data)
None.gif {
None.gif Template=self::template(file);
None.gif Template->output(data);
None.gif unset(Template);
None.gif }
None.gif
None.gif //create database connection
None.gif function database()
None.gif {
None.gif include_once (PATH_CLASS.DS.'db'.DS.'adodb.inc.php');
None.gif this->db = ADONewConnection();
None.gif this->db->createdatabase = true;
None.gif result = this->db->Connect(self::config('db_host') , self::config('db_user'), self::config('db_password'), self::config('db_database') );
None.gif if(!result)
None.gif {
None.gif die("Could not connect to the database.");
None.gif }else{
None.gif this->db->Execute("set names 'utf8'");
None.gif return this->db;
None.gif }
None.gif }
None.gif
None.gif //create template
None.gif function template(file)
None.gif {
None.gif include_once (PATH_CLASS.DS.'template'.DS.'class.smarttemplate.php');
None.gif Template = new Smarttemplate(file);
None.gif Template->template_dir=PATH_BASE.self::config('template_dir');
None.gif Template->cache_dir =PATH_BASE.self::config('cache_dir');
None.gif
None.gif return Template;
None.gif }
None.gif
None.gif //import class
None.gif function library(className)
None.gif {
None.gif if(empty(className))
None.gif {
None.gif return null;
None.gif exit();
None.gif }
None.gif else
None.gif {
None.gif require_once(PATH_CLASS.DS.className.'.class.php');
None.gif return new className();
None.gif
None.gif }
None.gif }
None.gif
None.gif //return config value
None.gif function config(parameter)
None.gif {
None.gif require_once(PATH_CONFIG.DS.'config.php');
None.gif
None.gif return CONFIG::Ini()->parameter;
None.gif
None.gif }
None.gif
None.gif}
None.gif
None.gif
None.gif?>
None.gif
. 控制器父类control.class.php
None.gif <?php
None.gifclass Control
extends Base
None.gif{
None.gif var
request;
None.gif
function Control()
None.gif {
None.gif this->request=this->library('params
');
None.gif }
None.gif
None.gif //
output page
None.gif
/*
None.gif *@paramater name file name
None.gif *@paramater data replace
None.gif *
None.gif */
None.gif function view(name,data= '')
None.gif {
None.gif Template=this->template(name.'.html
');
None.gif Template->assign('site_root',this->config('site_root
'));
None.gif
None.gif Template->assign(
data);
None.gif Template
->output();
None.gif unset(
Template);
None.gif }
None.gif
None.gif //
load model
None.gif function model(
name)
None.gif {
None.gif
None.gif include_once (PATH_BASE.DS.'models'.DS.name.'.php
');
None.gif
None.gif if(this->model==
null)
None.gif {
None.gif this->model=new
name();
None.gif }
None.gif return this
->model;
None.gif
None.gif }
None.gif
None.gif}
None.gif
None.gif
?>

转载于:https://www.cnblogs.com/eshow/archive/2011/10/04/2199009.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值