关于原生PHP应用开发与MVC架构的探讨(序)
在现如今的web应用开发当中,MVC架构模式几乎是标配,耳熟能详的技术名词:如Java的Struts2,spring MVC,以及简洁优雅的Ruby on Rails,无一不是MVC架构的优秀解决方案。那么在PHP领域呢?PHP以其语法简单易学,易用,便宜,开源项目众多而得到广大web开发人员的青睐。那么,随着面向对象,设计模式等概念和方法称为应用开发的主流,现如今的PHP,尤其是PHP 5.3以后,你会愈发的觉得PHP有那么一点像Java。最近些年,也涌现出大量优秀的PHP的MVC开源框架,比如:Laravel, Yii等。框架可以给本来就容易使用的PHP带来了更高效快速的开发方式,将原本乱七八糟无秩序的PHP脚本,用优雅的分层,类组织起来,将常用功能集成进去,你只需要简单的调用对象方法,或者简单配置一下,就可以使用,我们可以把关注度从那些基本的非业务性的逻辑流程解放出来,专注于特定项目的业务逻辑,而且有利于多人协作开发,使得多个人的代码看起来像一个人写的那样,规范,利于后期的维护和扩展,也降低了成本,这也是软件工程的基本原则。
但是,这样会带来一个负面的问题,不知大家有没有考虑过,尤其是对于刚进入开发行业的新人。如果你只会使用框架,而不懂那些基本功能的实现原理,例如你用惯了框架,可能都不知道请求数据是如何被过滤和验证的,以及路由转发的原理,模版引擎,页面内容缓存等,很可能他们根本都不知道原来还有这些事需要做。
是的,你得考虑数据验证,你得防治SQL注入,防治脚本攻击,防治跨站访问伪造(CSRF),在你离开了框架的条件下。你必须了解基本的原理,而不是只满足使用框架或代码库重复性的解决那些类似的需求,你需要了解基本功能的实现,封装,还得了解架构模式是如何用代码来实现的,你需要OOP,你需要设计模式,没错,你需要进阶!!
接下来,让我们花点耐心,利用几篇文章来讲解,通过一个极其微型简易的自定义mvc项目,来逐步带读者了解mvc架构的基本面,而且,有一个脑洞很大的做法,我懒得自己构建模版引擎,也不喜欢Smarty这样的模版引擎,我使用AngularJs 。是的,这是一个流行的js库,面向前端组建化开发,以及双向的数据绑定,还能够自定义页面元素(AngularJs中,叫做指令(Directive))。我们这里,只是利用它,作为我们的页面模版,也刚好可以把AngularJs与服务器端的代码无缝的整合在了一起,以后,没准可以想出更多的玩法。Ok,欢迎大家吐槽提意见,我们相互学习,也欢迎大家督促,因为我比较懒,一不小心就会断更,有了大家的支持和督促,是在下更新博客的动力,共同进步。
浙公网安备 33010602011771号