查看完整版本: 快速的模块式开发框架

lily 2007-8-1 22:31

快速的模块式开发框架

             <p><DIV>当写完一个程序之后,需要再写另一个程序时,比如当你写完一个留言版之后,需要再写一个文章管理程序。请看,一般留言板程序执行文件结构:<BR><BR>config.php<BR>header.inc.php<BR>footer.inc.php<BR>index.php<BR>globals.php<BR>.....<BR>文件管理程序或其它程序的结构也可以是这样子的。因为,如果程序是放在同一个网站动行,配置是相同的,在讲究程序与<a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, '%B4%FA%C2%EB');" target="_self"><u><strong>代码</strong></u></a>分离的的现阶段,还要配置模板引擎,就有很多重复<a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, '%B9%A4%D7%F7');" target="_self"><u><strong>工作</strong></u></a>要做。如果有一个程序,可以把自已以前写的程序整合在一起,又要保持原有的独立性。程序拥有独立性与整合性并存。这就是我要说的,模块式开发。这,就需要一个适合自已的<a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, '%BF%F2%BC%DC');" target="_self"><u><strong>框架</strong></u></a>。<BR>首先,从目录结构上区分一个这个框架,为易于理解,简主要结构如下:<BR>includes/<BR>modules/<BR>index.php<BR>config.php<BR>......<BR>1、目录includex下可以放一些常用的类库,如<a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, 'smarty');" target="_self"><u><strong>smarty</strong></u></a>类库,ado数据类库,或自定义类、函数库等等,每一类一个目录,然后把这些配置路经统一放置在config.php文件中<BR>2、modules目录用来存放模块,如留言模块。每个模块为一个目录。<BR>3、将index.php设为统一程序入口<BR>4、config.php为全局使用的配置文件<BR>下面就举个简单的例子:<BR>输入网址index.php?module=article&amp;action=list就引入下面的文件<BR>index.php<BR>config.php<BR>modules/article/index.php<BR>modules/article/list.php<BR><CENTER><TABLE cellSpacing=0 cellPadding=0 width="90%" border=0><TBODY><TR><TD><B>QUOTE:</B></TD></TR></TBODY></TABLE><TABLE style="BORDER-RIGHT: rgb(128,128,128) 1px solid; BORDER-TOP: rgb(128,128,128) 1px solid; BORDER-LEFT: rgb(128,128,128) 1px solid; BORDER-BOTTOM: rgb(128,128,128) 1px solid" cellSpacing=1 cellPadding=10 width="90%" border=0><TBODY><TR><TD width="100%" bgColor=#ffffff>index.php内容如:<BR><BR>define('SHOW', true);//定义入口常量<BR>require_once('config.php');//调入配置文件<BR>$module = $_GET['module'];//调用模块<BR>if (empty($_GET['module'])) $module = 'public';//默认值<BR>if (!preg_match ("/^[a-z_]+$/i", $module)) die('参数错误!'); //使模块名字参数只接受字母及_字符组成,防注入<BR>$path_module = PATH_MODULE.$module.'/';//模块路径<BR>is_file($path_module.'index.php') or die(FILE_NULL);//如果模块不存在就停止<BR>require_once($path_module.'index.php');//调用模块<BR>……<BR>config.php内容如:<BR>defined('SHOW') or die(header("HTTP/1.1 403 Not Forbidden"));//检测是否有入口常量<BR>define('DB_HOST', '127.0.0.1');//数据库地址<BR>define('DB_USER', 'qh663');//数据库用户名<BR>……//其它<a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, '%CA%FD%BE%DD%BF%E2');" target="_self"><u><strong>数据库</strong></u></a>配置与全局环境设置,如定义上面的常量(PATH_MODULE)<BR><BR>modules/article/index.php//模块入口,接受操作动作<BR>defined('SHOW') or die(header("HTTP/1.1 403 Not Forbidden"));//检测是否有入口常量<BR>$action = $_POST['action'];接受动作<BR>if (!preg_match ("/^[a-z_]+$/i", $action)) die('参数错误!'); //使模块名字参数只接受字母及_字符组成,防注入<BR>……//这里处理载入action之类的<BR><BR>modules/article/list.php//相应动作的执行,这里,可以包含任意所需代码实现<BR>defined('SHOW') or die(header("HTTP/1.1 403 Not Forbidden"));//检测是否有入口常量</TD></TR></TBODY></TABLE></CENTER><BR>一个模块,只一个参数。一个动作,也只一个参数。看下,是不是很爽?<BR>程序的独立与整合,只操作modules目录下的mod即可。并且程序只一个入口,非常安全!
页: [1]
查看完整版本: 快速的模块式开发框架
PageRank