Yii 2.0 权威指南 (6) 请求处理

更多内容: http://blog.yuhai.win

1、引导

启动引导是指:在应用开始解析并处理接收请求之前,一个预先准备环境的过程。启动引导会在两个地方具体进行:
入口脚本和应用主体。

2、路由引导于创建

当入口脚本在调用 yii\web\Application::run 方法时,它进行的第一个操作就是解析输入的请求,然后实例化对应的控制器操作处理这个请求。该过程被称为引导路由。

3、请求

一个应用的请求是用 yii\web\Request 对象来表示的,该对象提供了诸如 请求参数(通常是GET参数或者POST参数)、HTTP 头、cookies 等信息。默认的情况下,对于给定的请求,你可以通过 request application component 应用组件 获取相应的请求对象。

4、响应

当应用处理玩一个请求后,会生成一个yii\web\Response 响应对象并发送给终端用户 响应对象包含的信息有HTTP 状态码,HTTP 头和主体内容等,网页应用开发的最终目的本质上就是根据不同的请求构建这些响应。

5、session 与cookie

yii 中可通过 yii\web\Session 实例的session 应用组件来访问 sessions

当 sessions 数据为数组的时候, sessions会限制你修改数据中的单元项。

// 如下代码不会生效
$session['captcha']['number'] = 5;
$session['captcha']['lifetime'] = 3600;

// 如下代码会生效:
$session['captcha'] = [
    'number' => 5,
    'lifetime' => 3600,
];

可以使用以下方法进行变态处理


$session = Yii::$app->session;

// 直接使用$_SESSION (确保Yii::$app->session->open() 已经调用)
$_SESSION['captcha']['number'] = 5;
$_SESSION['captcha']['lifetime'] = 3600;

// 先获取session数据到一个数组,修改数组的值,然后保存数组到session中
$captcha = $session['captcha'];
$captcha['number'] = 5;
$captcha['lifetime'] = 3600;
$session['captcha'] = $captcha;

// 使用ArrayObject 数组对象代替数组
$session['captcha'] = new \ArrayObject;
...
$session['captcha']['number'] = 5;
$session['captcha']['lifetime'] = 3600;

// 使用带通用前缀的键来存储数组
$session['captcha.number'] = 5;
$session['captcha.lifetime'] = 3600;

官方推荐使用最后一种方案,也就是不存储session 变量为数组,而是将每个数组向变成有相同键前缀的session变量。(我的理解是尽量使用以为数组或对象)

6、错误处理

yii\web\ErrorHandler 错误处理器默认启用, 可通过在应用的入口脚本中定义常量YII_ENABLE_ERROR_HANDLER来禁用。

7、日志

日志记录的主要方法:

1、Yii::trace():记录一条消息去跟踪一段代码是怎样运行的。这主要在开发的时候使用。

2、Yii::info():记录一条消息来传达一些有用的信息。

3、Yii::warning():记录一个警告消息用来指示一些已经发生的意外。

4、Yii::error():记录一个致命的错误,这个错误应该尽快被检查。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值