1.2 研究框架
使用框架的意义是为了简化开发流程,降低开发难度,降低程序各模块之间的耦合度,提高程序模块内部的聚合度,并且提高维护效率。当一个框架不能达到这些目的的时候,就不应该使用这套框架。框架可以很庞大,但是不应该太臃肿,而且使用某一个框架,必须对这个框架的内部机制完全了解,确保不会有故意留下的漏洞和后门。框架代码应该开源,一个闭源的框架任何人都是不会放心地去使用它的。
在进行开发之前,仔细研究了已经出现很久的php(Hypertext Preprocessor)框架,特别是yaf(Yet Another Framework)对比下来更为合适进行这套系统的开发,下面是对yaf的分析。
yaf是一个开源的php框架插件,使用时候的第一感觉就是,什么都有,却也什么都没有。yaf提供了模型-视图-控制器三层架构分离的实现方法,同时对一些调用过程进行封装,让编程模式完全面向对象。yaf框架总在强调它有多好,多快,但是却忽略了php本身的缺陷:即时编译。无论是.net,java,python,nodejs,这些程序在担任服务器程序的时候都做到了同一个特性,即只在服务器开始的时候编译一次,之后所有操作都是在内存中完成的,除非必要的io交互,但绝对不会对程序代码进行即时编译执行。php做不到这点,因为php的所有程序的生命周期是从收到客户端请求开始,到响应请求完成结束。所以单靠框架无法解决这根本的问题。我认为yaf最大的优点是性能,这不是一般的快,性能比其他php框架快上十几倍,和原生的php相差不是非常多。缺点也很明显,毕竟是C的扩展,如果程序有漏洞,作者未及时更新,使用者在不懂C的情况下,只能看着网站受辱或者祈祷,或者关闭网站。
1.3 术语说明
事务:一组存在依赖关系的查询。如有语句a和语句b,若语句a执行成功,则执行语句b,否则撤销语句a的操作,则这类查询称为事务。
mvc:模型层-视图层-控制器层,三层分离式的程序架构。模型层用来关联数据,视图层用来定义数据的显示形式,控制器负责总体逻辑。
注入:通过不正常的输入内容使拼接之后的语句变成另一种含义,进行违规操作。
2 开发及运行环境的选择
2.1 硬件平台的要求
最低硬件平台要求:
1)计算机1台。
2)内存512MB。
3)硬盘空间1G。
2.2 数据库的选择
MySQL
MySQL是一个关系型数据库管理系统, MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的关系数据库管理系统应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
2.3 开发工具的选择
sublime text
Sublime Text 支持多种编程语言,拥有优秀的代码自动完成功能,还拥有代码片段的功能,可以将常用的代码片段保存起来,在需要时随时调用。支持 VIM 模式,可以使用Vim模式下的多数命令。支持宏,简单地说就是把操作录制下来或者自己编写命令,然后播放刚才录制的操作或者命令。