[原创]采用三层结构架设高灵活性网站
时间:2006-07-25
来源:互联网
2004年3月份的时候,因公司要求构建一套写真平台。我知道他们的要求是很多的,指不定什么时候又要要求改这个改那个的,所以特别设计了一套灵活性较高的系统来减少以后的麻烦。
为了使这套构想更灵活更安全效率更高,故将当初的构想贴出来大家讨论。
下面将这套构想简单的描述如下:
1、域名结构
将用户前端和管理后台完全分离(可用用不同的域名访问),将图片数据分离出来单独存放(可用用另外的域名访问)。比如:
用户前端:http://ent.test.com
管理后台:http://manage.test.com/portray
图片数据:http://pic.test.com/portray
2、文件结构
(1) 用户前端
/inc 公共库文件夹
/language 语言文件夹
/templates 模板文件夹
/style 主题文件夹
/*.php 程序逻辑
(2) 管理后台
同用户前端
(3) 图片数据
/upload.php 图片上传程序
/picture 图片文件夹(里面可用按照文件夹存放各种来源的图片,这里只需有portray一个就可以了,portray里面根据时间自动创建对应的图片文件夹如下)
/picture/portray/200504
/picture/portray/200505
/picture/portray/200506
3、分析:
(1) 将用户前端和管理后台分开,有利于安全管理和灵活部署。
1> 实现了模块的完全可拆离。
2> 可以将后台管理全部放到局域网内部。
3> 图片上传程序加入IP限制和用户登录限制(可以采用跨域session实现)。
4> 图片目录禁止脚本执行。
5> 用户前端除了图片和CSS外均使用php扩展名,除了根目录下面的php程序(加入常量INSITE的定义)外,其他任何目录内的文件均加入入口判断,例如:
7> 采用类程序设计和模板技术严格控制模板所能够使用的变量。
8> 使用缓存技术加快页面速度。
(2) 将表现层、逻辑层、数据层分开,利于程序的扩展和管理,也利于团队开发的无缝配合,还利于数据的备份和维护。
1> 将项目文档分散到不同的成员,从而减轻了编写项目文档的难度(当然,需要制定项目文档规范)。
2> 底层程序人员给逻辑层人员提供完整的接口文档,逻辑层程序人员给表现层人员提供完整的接口文档。从而,三层结构一层套一层,呈线性开发状(如果要并行开发,则需要完整的策划案)。
3> 可以写一服务器脚本,定时自动备份数据库和图片文件夹,来完成日常数据备份工作。对于单一项目,看不出有和大的益处。如果是一门户,或则很多模块,需要很多图片,那么可以把所有图片规范到http://pic.test.com,这样就只需有备份这域名对应的文件夹就可以完整备份所有图片数据了(当然还可以灵活备份部分图片数据)。
为了使这套构想更灵活更安全效率更高,故将当初的构想贴出来大家讨论。
下面将这套构想简单的描述如下:
1、域名结构
将用户前端和管理后台完全分离(可用用不同的域名访问),将图片数据分离出来单独存放(可用用另外的域名访问)。比如:
用户前端:http://ent.test.com
管理后台:http://manage.test.com/portray
图片数据:http://pic.test.com/portray
2、文件结构
(1) 用户前端
/inc 公共库文件夹
/language 语言文件夹
/templates 模板文件夹
/style 主题文件夹
/*.php 程序逻辑
(2) 管理后台
同用户前端
(3) 图片数据
/upload.php 图片上传程序
/picture 图片文件夹(里面可用按照文件夹存放各种来源的图片,这里只需有portray一个就可以了,portray里面根据时间自动创建对应的图片文件夹如下)
/picture/portray/200504
/picture/portray/200505
/picture/portray/200506
3、分析:
(1) 将用户前端和管理后台分开,有利于安全管理和灵活部署。
1> 实现了模块的完全可拆离。
2> 可以将后台管理全部放到局域网内部。
3> 图片上传程序加入IP限制和用户登录限制(可以采用跨域session实现)。
4> 图片目录禁止脚本执行。
5> 用户前端除了图片和CSS外均使用php扩展名,除了根目录下面的php程序(加入常量INSITE的定义)外,其他任何目录内的文件均加入入口判断,例如:
复制内容到剪贴板
if(INSITE!='portray') die('error:The entrance is not allowed!');
?>
6> 用户前端根目录下面的php文件均严格过滤数据来源和数据类型。代码:
<?phpif(INSITE!='portray') die('error:The entrance is not allowed!');
?>
7> 采用类程序设计和模板技术严格控制模板所能够使用的变量。
8> 使用缓存技术加快页面速度。
(2) 将表现层、逻辑层、数据层分开,利于程序的扩展和管理,也利于团队开发的无缝配合,还利于数据的备份和维护。
1> 将项目文档分散到不同的成员,从而减轻了编写项目文档的难度(当然,需要制定项目文档规范)。
2> 底层程序人员给逻辑层人员提供完整的接口文档,逻辑层程序人员给表现层人员提供完整的接口文档。从而,三层结构一层套一层,呈线性开发状(如果要并行开发,则需要完整的策划案)。
3> 可以写一服务器脚本,定时自动备份数据库和图片文件夹,来完成日常数据备份工作。对于单一项目,看不出有和大的益处。如果是一门户,或则很多模块,需要很多图片,那么可以把所有图片规范到http://pic.test.com,这样就只需有备份这域名对应的文件夹就可以完整备份所有图片数据了(当然还可以灵活备份部分图片数据)。
作者: ranbo 发布时间: 2006-07-24
不知道搂主是具体怎么组织结构的,想学习一下
作者: cysin 发布时间: 2006-07-25
倒,楼主说的都是废话。 我硬是没区分开你所指的三层结构是什么?
表现层 逻辑层 数据层?
可能我才疏�W浅,不能理解你的概念!
如果你最后一段说的就是三层概念的话,那我先说的时,我从写程序的第一天开始就是三层哦~~
表现层 逻辑层 数据层?
可能我才疏�W浅,不能理解你的概念!
如果你最后一段说的就是三层概念的话,那我先说的时,我从写程序的第一天开始就是三层哦~~
作者: 漠北怪叟 发布时间: 2006-07-28
说实话吧,我最最开始用dreamweaver学习做静态网页的时候就已经有上面的三层了。
作者: aninfeel 发布时间: 2006-07-30
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28