废除静态页,完全实现动态页面(伪静态)

重构目标的确立(探险之旅–一个古老的php项目的重构)

探险之旅 之 重构目标的确立

–一个古老的php项目的重构

名字起的挺大,其实可能没啥。说可能是因为刚着手做这个事情,完全不知道前路会有什么凶险。

先说马上就要面对的问题:

第一,这个系统可有些年头了,看代码中层层叠叠的补丁上,有不少标注着 2002.01.xx 的,估计这个系统最晚也是在2001年上线的。

第二,这套系统用的很杂。凭心而论,最开始架构这套系统的思想还是相当好的,也非常前卫: 用数据库的二维表来模拟对象的从属层级关系及属性信息。只有一个系列的对象还有,但实际上,数据库里存了大概4-5类的对象: 产品,新闻,景点,动植物分类,机票。

第三,这套代码打过太多的补丁了。每次一个新项目,差不能能用这套系统的,基本都会套用进来,然后是不可避免的塞入一系列的新代码和补丁,以使新旧项目可以和平共处。

第四,这套代码里还有很多很硬的编码,比如直接写了服务器的ip, 而不是统一写到配置文件里。

第五,这一点就是我迟迟不肯动手改这套代码的根本原因: 全部生成的静态页,而后来,为了能简单的替换页面中的广告或者改变页面的结构等, 把静态页切开按片生成,然后再用SSI的方式包含进行,从而形成最终的html文件。

好了,我们的主角该出场了: http://product.lvren.cn, 绿人户外装备频道
重构目标:

阶段1. 废除静态页,完全实现动态页面(伪静态)

后续阶段等完成本阶段后再考虑

为了实现阶段1的目标,我们还需要先做一些准备工作: 环境的搭建

1.下载数据库,并在本地重建。 这个过程涉及到mysql4向mysql5的迁移,导出sql就是了,顺利完成。

2. 下载源代码. 这个过程比较复杂,原因如下:

原因1: 服务器上几个频道的代码之间互相包含,而且很多include和require都是写死的服务器路径,直接放到本地来肯定会跑不通四处报错。

原因2:生成的静态页里,也都写死的网站的域名和链接,如果要在重构环境测试,就必须修改本地的Hosts, 结果就会没法看到运行服务器上的页面,无法进行对比。

原因3: 生成的静态文件目录下,文件超多,总大小为6.xG, 干脆就不往回下载了。

最后的解决方案: 为服务器上的全部源代码建立一个svn仓库,再为准备重构装备频道建立一个空的svn仓库。在本地建立一个新的域名 product.localhost 用来重构装备频道,同时可以把整套代码构造为不再依赖特定域名。

无评论

发布评论

您的电邮不会被公开。必填项目用*号标出