基于ThinkPHP框架招投标平台架构设计
基于ThinkPHP框架招投标平台架构设计 摘要:本文基于招投标平台的需求分析,比较了国内外流行的几种MVC框架,选择ThinkPHP框架进行架构设计,后台通过共用控制器和模型、采用多视图的方式支持多终端设备浏览器,网页前端采用Bootstrap快速开发框架,提高了开发效率、缩短开发周期并节约开发成本,具有普遍的应用价值
关键词:ThinkPHP MVC Bootstrap 招投标 架构设计
中图分类号:TP311.52 文献标识码:A 文章编号:1007-9416(2016)12-0165-01
1 招投标平台的需求分析
本招投标平台是建筑行业平台级的产品,主要是服务建筑行业内的专业性企业、个人以及专家,通过整合建筑行业资源、以建筑行业项目和服务为纽带,致力解决行业项目和服务招投标不规范、不透明、交易成本高企的现状。本文从功能性需求和非功能性需求两个方面进行需求分析
1.1 功能性需求分析
本招标平台分为两个主要流程:用户注册流程、招投标流程。(1)用户注册流程。用户通过短信验证码注册后,完善用户资料,成为注册用户;用户上传照片或者扫描件进行身份和建筑行业资质认证,平台后台认证后,用户成为认证用户;用户缴纳平台会员费后成为VIP用户。(2)招投标流程。用户发布招标项目和招标文件,符合项目条件的用户可以投标该项目,招标者在竞标列表中选标,中标者实施该项目,完工后提交验收、缴纳专家审核费,专家确认是否验收通过,最后由招标者决定项目是否结束
1.2 非功能性需求分析
(1)终端设备支持。平台可以支持PC端浏览器、手机浏览器以及微信端浏览。(2)安全要求。对于需要登录后才能访问的页面要禁止非法访问等。(3)性能要求。网络正常的情况下,大于2MB/秒,1000人以下并发访问页面打开时间最多不超过5秒
2 招投标平台MVC框架的选择
通过技术平台选型,考察ASP.NET MVC、Struts2、Spring MVC、ThinkPHP、Yii等多个MVC框架后,结合技术团队能力、国内流行程度等因素,将ASP.NET MVC、Struts2、ThinkPHP作为备选技术方案。ThinkPHP中的MVC提供了一种敏捷开发的手段,使得开发者能够迅速地开发出稳定的企业级网站[1]。ThinkPHP在中小型应用中,学习成本最低、开发效率最高,所以在国内PHP MVC框架应用中占据了将近50%的市场份额。本平台是一个中等规模的网站,根据前述非功能性需求分析得出,并发访问量要求不高,且用户预算低、开发周期短,所以决定平台采用ThinkPHP框架
3 招投?似教ǖ募芄股杓?
3.1 平台架构的设计
为了进一步压缩成本,缩短开发时间,从架构设计上既要满足前述用户需求,又要减少开发工作量。因此平台通过共用控制器和模型,采用多视图的方法满足用户PC端、手机端、微信端浏览本平台的需求,而前端则采用Bootstrap框架进行快速页面布局和前端编程。Bootstrap是最受欢迎的HTML、CSS和JS框架,用于开发响应式布局、移动设备优先的WEB项目[2]。根据需求分析,本平台部分技术架构设计如图1所示
限于篇幅,本架构主要展示了平台Home前台的架构设计,前台Home和后台Admin共用Common\Model,前台PC端View和移动端MobileView共用了前台Controller,从而减少了开发冗余,提高了代码复用率,大幅压缩了开发成本和开发周期,提高了软件质量
3.2 前台控制器基类的实现
FrontController是前台控制器的基类,只有一个方法_initialize,继承该基类的前台控制器都会执行该方法。_initialize方法通过ismobile函数判断,如果是手机端或者微信端浏览,则通过C(DEFAULT_V_LAYER’,MobileView’)函数将默认视图层从View目录改成MobileView目录,从而改成适合手机浏览的网页,而控制器类和模型类无需修改。如果用户没有登录,用户访问了需要登录才能访问的控制器方法,则将链接重定向登录方法,强制用户登录
4 结语
MVC轻量级ThinkPHP框架,基于面向对象的思想,结合使用了Ajax技术,使整个系统功能清晰明了[3]。本平台选择ThinkPHP框架进行架构设计,采用多个视图共用一个控制器方法的方式支持多终端设备浏览器,满足了招投标平台的功能性需求和非功能性需求,提高了开发效率、缩短开发周期并节约开发成本,具有较好的技术推广价值
参考文献
[1]徐诚斌,王金平.MVC在ThinkPHP框架中的应用研究[J].信息与电脑:理论版,2011(3):160-160.
[2]杨浩.基于T