糊涂仙
新手上路

UID 76879
精华
0
积分 16
帖子 124
金钱 16 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-7-23
状态 离线
|
我的b/s架构_这个是我这个板块的处男帖
我的b/s架构
最近这里的达人都发了好多文章,小弟也来热闹热闹。也不会写啥,就那最近的一个程序为例子简单的说说。给比我还菜的小鸟提供个参考吧。
其实这个就是一个基本的目录部署。也许有很多和我一样的菜鸟都遇见过很多麻烦,比如接到一个任务后不知道如何下手写,不知道重何出写起,不知道怎么部署自己的目录和文件。其实说白了就是没有项目经验。首先可能你们公司的*****部门提出了个xxxxx的方案,叫你开发一个叫没有计算机知识的人都能使用的程序给他们。然后召集你和美工开会,商量工期等等。这个时候你了解的是具体的需求,没有需求文档比较麻烦,最好给写一个,然后需求不完整的一定要写完整,要一次性把所有的东西都考虑进去,以免以后反工。这个是我们比较忌讳的。好现在开始部署我们的文件。
在构建一个系统之前我们首先考虑的应该以何种方式进行程序堆砌。如果说我们是团队合作进行一个比较大的项目开发的时候我们可能回采用oo,这样做的好处是更利于维护,在基类(超类)完成的基础下可以加快我们的开发效率。但如果我们最求程序执行效率的话我们一般会用面象过程进行代码堆砌,这个就看具体需求了。当你确定这个之后那就开始考虑根据需求设计系统的数据模型,本人推荐用ERStudio。在数据模型建立好的情况下,我们需要进行一些必要的公共函数收集,一般情况下我们把公共函数集放入到include/public_function.php文件里。同时我们尽量要作到函数的命名规范,还有就是程序里的函数啊还有什么的命名一定要规范,不会就安装个金山词霸 2005(赢正版)这个是后话,有点困,差点跑题。。。。。。那个我们继续说数据模型的建立,这个是最重要也是首要完成的东西。具体怎么设置就看你自己的了,所以你的程序文件夹里第一个建立的文件夹为DM,里面放你的数据库模型和原始数据.sql文档。同时为了以后你做程序方便可以把需求文件夹也建立起来doc,然后里面放需求文件和help文件,我们可能经常找些现成的类来做东西,数据库累啊,模板类啊什么的,也是程序比较重要的东西,怎么程序几乎到处都用到它们,没有他们就没发运行,就想汽车没有引擎不能启动一样,我们叫他drivers文件,我们建立个文件夹把它们都丢进去。
有时候我们会考虑到程序和模板分离,那么我们就建立个templates文件架,里面分别放我们的前台和后台摸板。把经常用的函数都丢到function.php里面,还有配置文件都放到incloud里面。程序都是有后台的,为了方便用户进行设置,所以我们建立admin文件夹。里面放我们需要用的全局文件设定的global.php文件,index.php这个就不解释了,还有login.php后台的登陆文件,这里有的人会放到外面,但是为了安全我是分开的,后台有后台的登陆,前台有前台的,用户一样,密码一样,但是到后台要重新登陆,这里我们可以设置下cookie的key,前台的是user,后台的admin,哈哈,这样还不冲突还方便。好处很多,大家开动脑筋自己想。
东西写到这里了,大家都该说了,你乱七八糟的弄了一大堆,具体文件里都放什么啊,首先来研究admin.php。这个是进入后台的路口,也是我认为的接口文件(也许俺的认识是错误的),里面的具体代码如下
admin.php
<?php session_start();//启动session define('IN_CONSOLIE',true);//设置一些常量,为了是后面的验证用 define('IN_SYSTEM',true);//同上
/** * set the web app root path */ define('ROOT_PATH',str_replace("\","/",dirname(__FILE__)));//找到现在的路径
$ADMIN_DIR = "admin";//文件目录地址 $IMG_DIR = "images/admin";//图片地址 require_once(ROOT_PATH."/{$ADMIN_DIR}/global.php");//载入admin目录下的global文件
$UserKey = "admin";//设置用户登陆后台的cookie的key
$input = init_variable();//这个是找魔力论坛的东西,释放get和post放来的变量以形成处理过的数组 $job = empty($input['job']) ? 'index' : $input['job'] ; $jobFile = "{$ADMIN_DIR}/{$job}.php";//默认文件是index.php,不是的话就载入 ?job=文件名 这个文件
!file_exists($jobFile) && exit("The require file <b style='color:red'>".$jobFile."</b> not exists!");//定义文件不存在时候的提示,.$jobFile.这样定义本人想是为了方便,一看文件不在可以直接拷贝着段话,然后去amdin文件夹里建立。
require_once($jobFile);//载入文件
?> admin
--index.php//里面一般都是如果登陆了就载入menu.php和右侧的程序info文件。没登陆就叫他们去login,php
--global.php//全局设定文件
--login.php//登陆文件
cache
--templates
---admin_login.tpl.php
--其他
DM
--Model1.DM1
--****.sql
doc
--需求文档.word
--help文件
drivers
--mysql_db.class.php
--page.class.php
--template.inc.php
images
--face
--admin
--其他
include
--conn.inc.php
--function.php
--sql_config.php
templates
--admin
--其他
admin.php
我觉得基本上就这么些了,然后其他文件都是自己想用啥功能就自己往里面加就好了。。。。。。。。未打草稿就丢上来了,大家别说我乱啊,哈哈。
|  我是AK,欢迎您加入我的
php唠嗑群 15996399 |
|