首页 > 代码库 > 慕课网,我的yii2学习笔记(基础篇)

慕课网,我的yii2学习笔记(基础篇)

一、关于PHP知识点

1、命名空间:存放类文件的空间,可以随便定义,建议与类文件目录一致,方便管理。

 

注:(1)、如果类没有设置命名空间,默认为顶级命名空间,在程序中可以用一下方式实例化。

$model = new \Class()

  (2)、如果引入类名相同,可以用一下代码区分。

use a\Class;use b\Class as B_Class;

 2、session:

  每个浏览器存储网站的session时会产生一个PHPSESSID,对应到服务器用存储session文件的名字。

二、关于Yii知识点

教程3-2:控制器之请求处理

  获取get/post参数时,如果不存在可设置第二个参数为默认值。  

$request = Yii::$app->request;
$request->get("id",10);

学东西要看完文档先。

$request->userIp; //获取用户ip地址,有点厉害。

$userHost = Yii::$app->request->userHost; //返回 example.com, URL中的host name。

if ($request->isAjax) { /* 该请求是一个 AJAX 请求 */ }

if ($request->isGet) { /* 请求方法是 GET */ }

if ($request->isPost) { /* 请求方法是 POST */ }

if ($request->isPut) { /* 请求方法是 PUT */ }

教程3-3: 控制器之响应处理

官网文档地址 :http://www.yiichina.com/doc/guide/2.0/runtime-responses

//相应组件的两个常见应用:跳转和下载$response->headers->add(‘location‘,‘http://www.baidu.com‘); //通过相应组件向头部文件中添加一个“跳转”$this->redirect(‘http://www.baidu.com‘); //通过$this方法调用yii封装好的redirect方法来实现“跳转”$response->headers->add(‘content-disposition‘,‘attachment; filename="a.jpg"‘); //以附件的形式保存请求到的数据,并能进行下载$response->sendFile(‘./robots.txt‘); //通过响应组装封装好的sendFile()方法来下载指定的文件;一般是调用index.php入口文件中指定的文件通过‘./文件名‘的方式找到该文件

 

 

教程3-4:控制器之session处理

  实现了 the ArrayAccess interface的类 可以当作数组使用 

  不同浏览器会产生不同的session,系统是根据sessionID来进行识别的

//1.调用session组件   $session = \Yii::$app -> session;//2.判断session是否开启if($session->isActive){  echo "Session is not acive";}//3.开启session  $session -> open;//4.设置session值  $session -> set(‘user‘,‘张三‘);//5.获取session值  echo $session -> get(‘user‘);//6.删掉session值  $session -> remove(‘user‘);

//通过数组方式来操作session$session[‘user‘] = "张三";// 设置session值echo $session[‘user‘]; //取出session数据unset($session[‘user‘]);//通过unset 来删除session

 

教程3-5:控制器之cookies处理

  1、获取cookie

$cookies = Yii::$app->request->cookies;$user = $cookies->getValue("user","value");//第二个参数为默认值

// 可将 $cookies当作数组使用
if (isset($cookies[‘language‘])) { $language = $cookies[‘language‘]->value; } 
//判断是否存在名为"language" 的 cookie 
if ($cookies->has(‘language‘)) ...
if (isset($cookies[‘language‘])) ...

  2、设置cookie

// 从"response"组件中获取cookie 集合(yii\web\CookieCollection)$cookies = Yii::$app->response->cookies;// 在要发送的响应中添加一个新的cookie$cookies->add(new \yii\web\Cookie([    ‘name‘ => ‘language‘,    ‘value‘ => ‘zh-CN‘,]));// 删除一个cookie$cookies->remove(‘language‘);// 等同于以下删除代码unset($cookies[‘language‘]);

  3、cookie的验证

  配置文件中设置,建议不要放到版本控制器中。

return [    ‘components‘ => [        ‘request‘ => [            ‘cookieValidationKey‘ => ‘fill in a secret key here‘,        ],    ],];

 

慕课网,我的yii2学习笔记(基础篇)