浅聊PHP框架

原先想起名叫“也谈PHP框架”,后来想想谈不了那么多,就想改叫“浅谈PHP框架”,后来又想谈也谈不了那么深入,所以定名“浅聊PHP框架”。聊聊而已,有火花就好。

1. MVC
model – view -controller
MVC显然是核心的东西。为什么要MVC分开?如果你是小型应用的话,可能看不出MVC到底可以做什么用的。但只要你是在维护一个有20w行以上业务逻辑的系统,就知道MVC可以起什么作用了。
MVC给我带来最好的东西就在于层次清晰,带来的就是代码维护上的方便和快捷。
目前我所在的公司的开发部只走了软件生命周期的一半,开发完了,迭代OK了,随着使用说明书一块交付业务。然后就不管了,开发人员转去另一个项目组。剩下的产品维护、bug跟踪、版本升级等等东东基本上不管了。剩下的这一半周期很大程度上是由我们部门和网管来操作(当然我们也有自主开发的产品,而且是给公司带来直接利润的)。
这剩下一部分工作,如果有人做过,就知道修改bug、修改界面、修改什么什么的是一件多么头疼的工作。如果业务流程有变动,程序就要跟着修改,而且这样的修改非常强调时效性。有的可能两三天内就要完成,甚至一天内就要修改上线。如果还继续采用传统的混合代码型的结构,造成的结果就是:你花了很多时间在理解原来的程序的思路上。MVC就把这部分浪费的时间帮你捡回来了。因为你可以一眼看出这个是在哪里处理的。维护起来就比较方便了。而且可以和UI分开,UI人员在做美工的时候,你可以修改代码。互不影响。
当然有经验的UI还可以把HTML和CSS分开,更好的UI可以把HTML/CSS/JS都分开。神奇吧。。
这么分开还有一个好处就是代码重用性会提高一些。你可以很清楚地看到哪些代码是已有的可以用。因为不可能每个新员工都清楚哪些是我可以利用的,而不是重复发明了轮子。

2. 封装
model和controller里不免要用到很多class。
封装好class,可以让逻辑更清楚。比如xmren里的,我尽量使得和操作流相关的类做到不输出字串,不用到echo这样的东西。echo的操作应该放到view里去。
封装也要搞得漂亮一些。最近还在看UML的东西(还要看琴谱),这样对如何封装类可能会有帮助吧。慢慢来。
什么类做成静态类,什么类做什么用,咳咳,好好研究哪。

3. 现有的PHP框架
我看了一些PHP框架,包括CakePHP/FleaPHP和少量的Zend Framework,觉得它们都是优秀的框架。但它们都会有一些局限性。
对CakePHP/FleaPHP这两个学习ROR出来的框架而言,我对他们最大的不满就在于他们对数据库操作的不灵活。不过话要说回来,他们的“不灵活”源自于ROR的规约性的开发,这样规约性的开发可以大大加快开发速度。但对于商用而言或是准备升级而言,修改数据库显然成本太高。
如果他们把数据库操作这一块当做一个“插件”,那我想可用性就更高了。从迁移成本上考虑,理当如此。
不过他们的RBAC(Role Based Access Control)好像还不错。可以吸收。
btw, 对CakePHP中的route.php实在是赞不绝口,很聪明,不过还不够聪明,还能再改进一些。

4. 小结
对中小型网站的开发,包括xmren这样的,都可以用这些现成的框架。加快开发速度,效果也不错。
如果对于网站要升级、或是大型商用网站。就要好好考虑了。目前现有的PHP框架可能都不适用于大型应用,对于此类,还是要因地制宜地开发自己的系统。多多考虑,前期规划远胜于后期修改。

Copyright © 2007. All Rights Reserved.

发表评论

电子邮件地址不会被公开。 必填项已用*标注