一聚教程网:一个值得你收藏的教程网站

热门教程

yii2.0基础的学习笔记

时间:2022-06-25 00:49:14 编辑:袖梨 来源:一聚教程网

yii2.0学习笔记,比较乱,凑合的看一下。

1.接收参数

$request = yii::$app->request;
$request->get('a','defVal')  接收一个get请求的参数
$request->post('a','defVal')  接收一个post请求的参数
$request->isGet  判断是否是get请求。
$request->userIp 获取访问者的ip

2.头部响应

$resp = YII::$app->response;
$resp->statusCode = 404;
$resp->headers->add('pragma', 'no-cache');
$resp->headers->set('pragma', 'max-age=5');
$resp->headers->remove('pragma');
$resp->headers->add('Location','http://www.baidu.com');
$this->redirect('http://www.baidu.com', 302);
文件下载相关
$resp->headers->add('content-...','attachment...');
$resp->sendFile('./index.php');

3.session组件

$ses = YII::$app->session;
$ses->open(); //开启session
var_dump($ses->isActive); //查看sesson是否开启
$ses->set('name', 'reson'); //设置一个session
$ses['name'] = 'reson'; //设置一个session也可以用这种方式
echo $ses->get('name'); //获取session
echo $ses['name']; //获取session也可以用这种方式
$ses->remove('name'); //删除session
unset($ses['name']); //删除session也可以用这种方式

4.cookie

$cook = YII::$app->response->cookies;
$cookData = array('name'=>'name', 'value'=>'reson1');
$cook->add(new Cookie($cookData)); //添加cookie,修改跟添加一样,只需改一下$cookData中的信息重新add就可以了
$cook->remove('name'); //删除cookie
$cookGet = YII::$app->request->cookies;
echo $cookGet->getValue('name1','defVal'); //获取cookie中的值,如果不存在,返回第二个参数中的默认值
cookie加密:config/web.php 中的 cookieValidationKey

5.渲染模版

return $this->renderPartial() 和 return $this->render()
render('index',array('kk'=>'test.php')) ?> //模版中引入其他模版

blocks['block1']?>
beginBlock('block1'); ?>

覆盖掉全局模版中的指定区域


endBlock(); ?>

6、基本概念

一、入口文件
入口文件内容:一般格式如下:
 
$Yii =dirname(__FILE__).'/../../framework/Yii .php';//Yii 框架位置
$config=dirname(__FILE__).'/protected/config/main.php';//当前应用程序的主配置文件位置
 
// 部署正式环境时,去掉下面这行
// defined('Yii _DEBUG') or define('Yii _DEBUG',true);//是否运行在调试模式下
 
require_once($Yii );//包含Yii 框架
Yii ::createWebApplication($config)->run();//根据主配置文件建立应用实例,并运行。你可以在当前应用的任何位置通过Yii ::app()来访问这个实例。
 
 
7、主配置文件

保存位置:你的应用/protected/config/main.php
文件内容:一般格式如下:
return array(
'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', //当前应用根目录的绝对物理路径
'name'=>'Yii Blog Demo', //当前应用的名称
 
// 预载入log(记录)应用组件,这表示该应用组件无论它们是否被访问都要被创建。该应用的参数配置在下面以“components”为关键字的数组中设置。
'preload'=>array('log'), //log为组件ID
 
// 自动载入的模型和组件类
'import'=>array(
'application.models.*', //载入“application/models/”文件夹下的所有模型类
'application.components.*', //载入“application/components/”文件夹下的所有应用组件类
),
 
'defaultController'=>'post', //设置默认控制器类
 
// 当前应用的组件配置。更多可供配置的组件详见下面的“核心应用组件”
'components'=>array(
'user'=>array( //user(用户)组件配置,“user”为组件ID
// 可以使用基于cookie的认证
'allowAutoLogin'=>true, //允许自动登录
),
'cache'=>array( //缓存组件
              'class'=>'CMemCache', //缓存组件类
              'servers'=>array( //MemCache缓存服务器配置
                  array('host'=>'server1', 'port'=>11211, 'weight'=>60), //缓存服务器1
                  array('host'=>'server2', 'port'=>11211, 'weight'=>40), //缓存服务器2
              ),
),
'db'=>array( //db(数据库)组件配置,“db”为组件ID
'connectionString' => 'sqlite:protected/data/blog.db', //连接数据库的DSN字符串
'tablePrefix' => 'tbl_', //数据表前缀
),
// 如果要使用一个MySQL数据库,请取消下面的注释
/*
'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=blog', //连接mysql数据库
'emulatePrepare' => true,
'username' => 'root', //MySQL数据库用户名
'password' => '', //MySQL数据库用户密码
'charset' => 'utf8', //MySQL数据库编码
'tablePrefix' => 'tbl_', //MySQL数据库表前缀
),
*/
'errorHandler'=>array(
// 使用SiteController控制器类中的actionError方法显示错误
            'errorAction'=>'site/error', //遇到错误时,运行的操作。控制器名和方法名均小写,并用斜线“/”隔开
        ),
 //URL路由管理器
        'urlManager'=>array(
          'urlFormat'=>'path', //URL格式。 共支持两种格式:'path'格式(如:/path/to/EntryScript.php/name1/value1/name2 /value2...)和'get'格式(如: /path/to/EntryScript.php?name1=value1&name2=value2...)。当使用'path'格式时, 需要设置如下的规则:
          'rules'=>array( //URL规则。语法:<参数名:正则表达式>
          'post//'=>'post/view', //将post/12/helloword指向post/view?id=12&title=helloword
          'posts/'=>'post/index', //将posts/hahahaha指向post/index?tag=hahahaha
          '/'=>'/',
          ),
        ),
'log'=>array(  //记录
'class'=>'CLogRouter', //处理记录信息的类
'routes'=>array(
array(
'class'=>'CFileLogRoute', //处理错误信息的类
'levels'=>'error, warning', //错误等级
),
// 如要将错误记录消息在网页上显示,取消下面的注释即可
/*
array(
'class'=>'CWebLogRoute',
),
*/
),
),
), //应用组件配置结束
 
 
// 使用Yii ::app()->params['参数名']可以访问应用层的参数
'params'=>require(dirname(__FILE__).'/params.php'),
);

热门栏目