MVC in php — why framework?
长久以来,编写php程序最大的一个问题就是php太灵活了。
没有类约束,可以随意引用脚本文件,允许全局变量等等。
直接的结果就是对于相同的功能每个人都可以有一套自己的实现方法。
对语言本身来说或许不是什么大事,但是对于一个项目来说就比较致命了。
编程就像写小说,每个人都会忠于自己的情节,当项目逐渐庞大,各种代码杂乱一通,后续的重构已经不能解决问题的时候,项目本身的维护成本将越来越高。
如何降低一个项目的维护成本呢,一般说来有两种方式解决这个问题。
其一是通过软件工程中的方法,以管理学的思维控制项目质量,比如codereview,svn,利用外部控制软件质量。
其二是通过对现有软件进行改进,包括语法,业务逻辑,效率优化,比如从以前的cgi到php,提升了开发效率,自然也可降低维护的成本。
框架的存在从某种意义上说也有两个目的,其一是封装,把常用的业务或者底层函数封装成函数或者类方便其他人使用,其二是限制,降低不同开发人员的自主性,必须以框架规定的方式构建程序,这样既可以简化开发,也可以提升软件质量。