随着web的发展,仅一门语言或者一种技术已经不能满足需求,分层架构显得越来越重要。在大型架构中,从来不会简单地应用php从头到尾实现一个完整的mvc架构。可能底层是c/java的支撑,负责密集运算和yu与数据库的交互。表现层用javascript+PHP完成,js负责前端大部分业务逻辑he和数据发送,数据经由PHP送达后端。比如淘宝,使用PHP作为前端,java是主要的后端语言,实现密集运算和数据中心。再如百度,主要逻辑和数学运算由C完成,PHP只是前端语言,并且在代码中大量使用C完成PHP扩展.
越是大型应用,PHP扮演的角色越接近于前端,越来越向前端靠近。PHP仅仅负责数据de的传输和简单业务判断,配合javascrit完成表现层的工作,此时PHP的金额色是视图层。PHP本身是一套C函数的抽象,可以理解为C写成的模板语言,此时再使用PHP实现一个模板引擎已经不那么必要了。PHP代码和HTML代码的混写也是可以接受的,况且PHP强项就是字符串和数组处理,作为前端模板语言非常合适。
从另一个角度来说,模板引擎真的对前端友好吗?其实模板引擎的语法不比PHP原生语言简单,况且很多情况下,这部分代码是由程序员自己完成,美工只是负责切图和CSS。对于程序员而言,每个模板引擎的语言并不一样。每一种模板语言都需要一定的学习成本。而原生PHP在任何地方都能通用,没有学习成本,只要把缓存做好就可以了。
随着ajax,jquery的流行,使用javascript负责部分前端数据展示变得流行,特别是jQuery的推波助澜,一些javascritp引擎耶引发了开发者的兴趣。这样依赖PHP只需要负责生成数据,至于数据的占时和逻辑判断等则由javascript处理
在多层架构体系中,PHP扮演的较色越来越少,所以PHP也就用不到太多道具了。我们编程的时候应做多语言协作,前后端协作,百花争鸣,让每一种语言和工具都扮演好自己的角色,做自己擅长的事情,合理分配负载。