来公司工作一年多了,作为技术部phper,做了一些项目,主要是基于ThinkPHP框架,和PHPCMS的二次开发,自己也研究了wordpress的源码,通过这些工作和钻研,学到了很多web开发方面的新知识,也有了自己的见解。以下是做过的项目总结,以及学到的东西,温故知新。
1.广告联盟系统
_本项目是跨年项目,去年末开始,今年初完成并上线,后期也有修改。
基于ThinkPHP框架开发,网页设计师和前端工程师负责设计和制作网页、js,前后台各一名PHP程序员,我负责数据库设计和后台开发。
项目需求大概是:成为会员之后,可以通过我们提供的代码投放多种形式的广告到网页或者客户端,为我们的产品做推广,每天自动定时读取统计数据,比如安装量,注册量等等,根据一套算法计算广告推广费用,支付给会员。
后台主要功能有:会员管理(会员审核,会员资料,捆绑网站、软件客户端等),广告管理(添加和删除广告,广告类型有弹窗、对联、软件等),结算管理(每天自动计算广告费,生成报表并存档记录,支付管理等),客服管理等。
主要用到的技术和学到的知识:
RBAC(Role-Based AccessControl),基于角色的访问控制。这是ThinkPHP自带的,对管理员进行角色分组,不同角色具有不同的权限,可以对控制器的每个方法进行权限结点分配。有机会研究一下比RBAC更好的权限控制:Auth类认证。
分表和事务。由于每天产生的数据量很大,需要进行分表,ThinkPHP提供了分表的方法,我要做的主要就是数据库设计,如何合理的建表以及字段,在开发过程中也多次调整。由于涉及到“钱”方面的计算,所以计算费用的时候要非常谨慎,计算的过程要先后向四个表中写入数据,为了防止其中某一步出错而导致数据异常,这里采用了mysql事务机制。
ThinkPHP缓存。许多地方重复用到相同的数据,还有的广告类型可以设定不同的时间出现不同的广告,在一定的时间内只读取缓存就行了,使用ThinkPHP缓存可以提高程序效率。
2.下载站转换程序+改版+扩建
9553下载站之前是asp程序+mssql数据库,现在要转换成PHP程序+mysql数据库,用PHPCMS进行二次开发。
最麻烦的是转换数据库,要把之前mssql数据库的表和字段,一一对应转换到现在PHPCMS的mysql数据库。幸亏有navicat,很方便把myssql数据库导入到mysql,但是关键的还是要写大量sql语句并且结合PHP程序,按照PHPCMS表的设计,把数据导入。除此之外,新站的所有url要保证和旧站一模一样,由于两个不同语言的程序差别比较大,做新站的同时还要考虑旧站的一些东西,也是让人头疼的一件事情。
这些都搞定了,但是由于美工都忙于其他事情,新的界面没有出来,暂时用老的界面,于是把旧站的所有页面保存到本地,而且以前的页面很多不规范的地方。。
用PHPCMS把新站功能做好了,重新同步并导入线上数据库,经多次测试改bug后正式上线了。
紧接着,全新改版的界面出来了,新版在界面设计上和功能上都有很多不同,是一个全新的升级改版。于是,在原先的基础上,开发新的功能,用新的页面,一个崭新的下载站诞生了。然而,修改不断,不断调整界面和加入新功能,特别是后台加入了很多方便编辑的功能,可以说大几十处细节改进。
之后,网站扩建,由软件站,单机站,加上手机软件站,和资讯站,以及手机站,每个站都是一个单独的子站,每个站都有专门的专题模块,网站规模越来越大。之后进入了维护阶段。最终,一个庞大的站点出来了。
新站的界面和js由网页设计师和前端工程师完成。程序一开始都是一个人弄,后来和另一名phper一起完成开发。
建议以后的项目能有好的需求分析,而不是开发的过程中,不断提出需求的改动,这样很没效率而且增加开发的难度。
主要用到的技术和学到的知识:
不同数据库类型(mssql和mysql),以及不同表结构数据库之间的数据转换。熟练运用了各种sql语句,并且要结合新站程序的功能和数据库表设计。有一个地方开始转换很慢,后来把一个表的两个字段查询出来放到数组中,再结合sql查询,效率大增。
学到了PHPCMS二次开发的各个方面,以及自定义标签,多站点,独立模块开发等,研究了PHPCMS的源码,学到了很多web开发的技巧和新的思路。
3.九游游戏数据接口+游戏盒子
这是C++开发的游戏盒子客户端里面调用的一个网页栏目,这个栏目是通过读取UC九游游戏中心的数据,取出保存到本地数据库,定时增量同步。前端页面通过页面展现,这个项目集成到了小游戏网站后台中。
主要用到的技术和学到的知识:
学会阅读第三方提供的文档和数据字典,构造签名,读取数据,并且实现增量同步。
通过写PHP接口的方式,方便C++获取数据。在前端页面上也可以设置标记,以方便C++在客户端中进行操作。
4.单机站转换程序+改版
这个和软件站转换程序+改版过程差不多。也经过几大步骤:1.数据库转换 2.改版 3.需求改动 4.改bug
此外还帮助一游改过东西。还有一个wordpress的站点间歇性折腾了之后没下文了。
结束语
以上就是今年工作的主要内容,一边折腾,一边思考学习,颇有收获。做单机站的转换程序+改版的时候,就比软件站转换程序+改版更得心顺手,很多同样的功能再次做的时候采用更好的方法,程序上的实现也更加简洁并且有效率。
除此之外自己还研究wordpress源码,它只是一个很流行的博客程序,也不是MVC架构,而是面向过程和面向对象结合的一个软件,但是它的代码很优雅,许多地方很高深。通过研究wordpress的代码学到很多写法和巧妙的思路,写代码思想很重要,我将进一步学习。
新的一年,除了加强以上这些web开发方面的工作和学习,我希望能够承担技术含量更多的任务,接触到更深层次的PHP在web开发领域的知识和技能。
因篇幅问题不能全部显示,请点此查看更多更全内容