PHP专题之主流框架——YII

前言:由于目前市面上的PHP框架较多,因此楼主打算整理一些主流框架的介绍,用于给你们学习交流。在接下来的一段时间内,会持续性的为你们奉上相应的框架介绍。
上次主要为你们介绍了TP3.X,以及TP3.X与TP5的一些区别,本次主要为你们介绍下目前市面上的另一个主流框架YII2.0。

2、PHP中常见的框架之YII


YII是一个基于组件的高性能PHP框架,用于开发大型Web应用。YII采用严格的OOP编写,并有着完善的库引用以及全面的教程。事实上,YII是最有效率的PHP框架之一。
YII是一个高性能的PHP5的web应用程序开发框架。经过一个简单的命令行工具 YIIc 能够快速建立一个web应用程序的代码框架,开发者能够在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发
目前市面上用的最多的YII版本是2.0,固然也有极少数的公司使用的是1.0的版本


① 入口文件


入口文件内容:通常格式以下:
$Yii =dirname(__FILE__).'/../../framework/Yii.php'; //Yii 框架位置
$config=dirname(__FILE__).'/protected/config/main.php'; //当前应用程序的主配置文件位置

②控制器



设置默认控制器有两种方法


一、在/vendor/yiisoft/yii2/web/Application. PHP中:
public $defaultRoute = 'site';


能够把这个默认改了,可是修改框架源码不是很好最好是在配置文件中扩展


二、能够在 frontend/config/mian. php return[]下添加一行:
'defaultRoute'
=>
'index'
,
这样默认控制器就改好了




③模型



yii的模型有Model和ActiveRecord两种:


一、Model类用来处理基本的业务逻辑,没有 数据库相关方法


二、若是要操做同名数据表,就去继承ActiveRecord类。
在models文件夹中的Operation.class里Operation类来继承yii\db\ActiveRecord来操做
Operation表


三、
若是要操做其余表,也能够重写public $tableName属性来设置,或改写其tableName方法(注意是静态方法):
public static function tableName(){return 'tableName'}



④请求流程




用户发送请求给入口脚本,入口脚本加载配置,运行application,application会建立一个request组件去处理此次用户请求,Request组件会去路由里面查找用户想要请求的那个Controller,找到Controller后实例化它,调用对应的action执行操做,action会调用对应model层的函数进行数据处理,处理完成以后返回给对应的action,action会将数据格式化或者不格式化渲染View,为其提供填充所须要的数据,渲染完成的结果会返回给response组件发送给用户浏览器




⑤响应流程




当应用完成处理一个请求后, 会生成一个yii\web\Response响应对象并发送给终端用户。响应对象包含的信息有HTTP状态码,HTTP头和主体内容等, 网页应用开发的最终目的本质上就是根据不一样的请求构建这些响应对象。
在大可能是状况下主要处理继承自 yii\web\Response 的 response 应用组件, 尽管如此,Yii也容许你建立你本身的响应对象并发送给终端用户



⑥Cookie调用流程



Yii2.0的Cookies不一样于常规的PHP的Cookie设置,YII2.0Cookies使用Cookie类自定义名称、值、过时时间;而后将设置好的cookie配置项装载到CookieCollection中。而后服务器端处理完客户端提交的数据后返回触发Yii::$app->response中的事件;将调用Yii::$app->response->send()方法



⑦ Session调用流程



在Yii框架中,不须要像标准PHP代码那样使用session_start(),Yii 框架中,autoStart属性缺省被设置为true,因此虽然没有使用session_start(),但仍然能够使用$_SESSION全局变量,但最好使用Yii框架封装的Yii::app->session:
设置session变量:Yii::app()->session['var']='value';
使用session变量: echo Yii::app()->session['var'];
移除
session变量:unset(Yii::app()->session['var']);
其余方式配置session调用,能够自行思考




YII特性总结


1)
多种缓存机制,并支持缓存依赖。按需加载
/
延迟加载


2) 支持多模块多模版。


3) 相对较完善的库支持和第三方类库的导入。Yii还支持PHP的命名空间和自定义autoload方法


4) 工具支持yiic和gii。gii很是好用的建模块、控制器(动做)、CURD操做等功 能,能够减小开发周期。


5) 全面的事件行为机制。


6) Yii容易学习和使用,开发速度快


7) Yii有着丰富的功能,从MVC、DAO/ActiveRecord、widgets、caching、等级式RBAC、Web服务到主题化,YII提供了今日Web 2.0应用开发所须要的几乎一切功能。


8) Yii具备高度的可重用性和可扩展性,是纯粹的面向对象
相关文章
相关标签/搜索