zoukankan      html  css  js  c++  java
  • 快速的模块式开发框架(有助于理解MVC)

    当写完一个程序之后,需要再写另一个程序时,比如当你写完一个留言版之后,需要再写一个文章管理程序。请看,一般留言板程序执行文件结构:
    config.php
    header.inc.php
    footer.inc.php
    index.php
    globals.php
    .....
    文件管理程序或其它程序的结构也可以是这样子的。因为,如果程序是放在同一个网站动行,配置是相同的,在讲究程序与代码分离的的现阶段,还要配置模板引擎,就有很多重复工作要做。如果有一个程序,可以把自已以前写的程序整合在一起,又要保持原有的独立性。程序拥有独立性与整合性并存。这就是我要说的,模块式开发。这,就需要一个适合自已的框架。
    首先,从目录结构上区分一个这个框架,为易于理解,简主要结构如下:
    includes/
    modules/
    index.php
    config.php
    ......
    1、目录includex下可以放一些常用的类库,如smarty类库,ado数据类库,或自定义类、函数库等等,每一类一个目录,然后把这些配置路经统一放置在config.php文件中
    2、modules目录用来存放模块,如留言模块。每个模块为一个目录。
    3、将index.php设为统一程序入口
    4、config.php为全局使用的配置文件
    下面就举个简单的例子:
    输入网址index.php?module=article&action=list就引入下面的文件
    index.php
    config.php
    modules/article/index.php
    modules/article/list.php

    index.php内容如:
    代码:
    define("SHOW", true);//定义入口常量
    require_once("config.php");//调入配置文件
    $module = $_GET["module"];//调用模块
    if (empty($_GET["module"])) $module = "public";//默认值
    if (!preg_match ("/^[a-z_]+$/i", $module)) die("参数错误!"); //使模块名字参数只接受字母及_字符组成,防注入
    $path_module = PATH_MODULE.$module."/";//模块路径
    is_file($path_module."index.php") or die(FILE_NULL);//如果模块不存在就停止
    require_once($path_module."index.php");//调用模块
    ……

    config.php内容如:
    代码:
    defined("SHOW") or die(header("HTTP/1.1 403 Not Forbidden"));//检测是否有入口常量
    define("DB_HOST", "127.0.0.1");//数据库地址
    define("DB_USER", "qh663");//数据库用户名
    ……//其它数据库配置与全局环境设置,如定义上面的常量(PATH_MODULE)

    modules/article/index.php//模块入口,接受操作动作
    defined("SHOW") or die(header("HTTP/1.1 403 Not Forbidden"));//检测是否有入口常量
    $action = $_POST["action"];接受动作
    if (!preg_match ("/^[a-z_]+$/i", $action)) die("参数错误!"); //使模块名字参数只接受字母及_字符组成,防注入
    ……//这里处理载入action之类的


    modules/article/list.php//相应动作的执行,这里,可以包含任意所需代码实现
    defined("SHOW") or die(header("HTTP/1.1 403 Not Forbidden"));//检测是否有入口常量
    一个模块,只一个参数。一个动作,也只一个参数。看下,是不是很爽?
    程序的独立与整合,只操作modules目录下的mod即可。并且程序只一个入口,非常安全!
  • 相关阅读:
    自习任我行第二阶段个人总结9
    自习任我行第二阶段个人总结8
    自习任我行第二阶段个人总结7
    自习任我行第二阶段个人总结6
    自习任我行第二阶段个人总结5
    自习任我行 第二阶段每日个人总结4
    自习任我行 第二阶段每日个人总结3
    自习任我行 第二阶段每日个人总结2
    自习任我行 第二阶段每日个人总结1
    结课总结
  • 原文地址:https://www.cnblogs.com/kuyuecs/p/1274586.html
Copyright © 2011-2022 走看看