MVC
这个我们已经相当熟悉了吧,这里做个总结吧。
工作原理:Model、View、Controller
Model:数据模型层,通常对数据进行加工和数据的处理。数据相关的操作我们都在Model层完成。
View:视图层,跟我们用户进行交互的一些界面上的东西
Controller:业务处理层,是用来处理我们的业务逻辑的
常见的MVC框架:ThinkPHP、Yii2、CI、Yaf、Phalcon等
我们在进行请求,比如说请求index.php会跟上问号?r=site/index代表我们要请求site模块下面的index方法,或者r=user/reg就是用户模块下的注册reg方法。这就是访问我们控制器。
控制器再通过方法去调用我们的V层,把V层给我们展示出来。提交数据提交给user/doreg
,-调用M层,把数据扔给M层,让M层存到DB中。
单一入口工作原理:
这个大家也不陌生,工作原理:用一个程序文件处理所有的HTTP请求,根据请求时的参数的不同区分不同模块和操作的请求。
比如我们请求index.php?r=user/reg,在index.php接收到get到的r的参数,拿到user/reg,然后new了user调用reg()
我们将来访问框架内容的时候都是通过单一入口,你比如说访问用户模块就写用户,访问分类模块就是cate/,你要访问商业模块我们就访问product/模块,后面跟我们的不同方法,但是访问的都是index.php,访问的都是同一个入口文件。
其优势在于:所有请求都经过index.php可以进行统一的安全性检查。否则多个模块都要做安全性检查很繁琐。一夫当关万夫莫开!集中地处理我们程序。
劣势:URL地址很不美观,后面跟了一大堆参数,但是我们可以通过URL重写进行美化呀!同时它的处理效率会稍微低一点(一般看不出来),但是相比开发效率这块处理效率就可以进行忽略。
有些框架在进行操作也可以进行多入口,比如说前台一个入口,后台一个入口。
V层:
常见模板引擎:PHP是一种HTML内嵌式的在服务端执行的脚本语言,但是PHP有很多可以使PHP代码分开的模板引擎,例如:最经典的Smarty我也用了好多次了^_^,Twig,Haml,Liquid等。
工作原理:模板引擎就是庞大的完善的正则表达式替换库
比如说 $smarty-->assign(“name”,”Tom”)
在HTML中{$name;}就可以拿到这个值
在Smarty中他会把html文件,全部抓出来分析里面这样的字符,用正则表达式进行替换即可。感兴趣的同学可以读一读Smary的源代码,本身也是开源的。
PHP常见框架的特性:
Yaf框架:Yaf使用PHP拓展的形式写的一个PHP框架,也就是以C语言底层编写的,性能上要比PHP代码写的框架要快一个数量级。
优点:执行效率高,轻量级框架,可拓展性强
缺点:高版本兼容性差,底层代码可读性差,需要安装拓展,功能单一,开发需要编写大量的插件
Yii2框架:Yii2是一款非常优秀的通用Web后端框架,结构简单优雅、使用功能丰富、扩展性强、性能是它的最突出的优点。
缺点:学习成本较高,相比Yaf量级较重
等等