yii2的启动与安装
1.yii2框架下载地址
http://www.yiichina.com/download
下载应用程序模板就可以
2.安装,然后查看环境是否符合(PHP5.4+)
http://127.0.0.60/basic/requirements.php
3 口文件
http://127.0.0.60/basic/web/index.php
yii\web\Request::cookieValidationKey must be configured with a secret key.
\basic\config\web.php
'cookieValidationKey' => '',//改成如下
'cookieValidationKey' => 'ferf3efdsc',
同时要开启PHP扩展 open ssl
yii2请求流程结构图
- Yii应用的静态结构图
一封信的故事,先到门卫(index)再交给老大(主体)老大给了我(控制器),我先用模型记录了一部分到数据库,然后写了回信交给(视图),并且拿了些小玩意从部件里面一并发回
)
命名空间
- namespace是用来区分不同位置的相同类名,use关键字用来定义重复的位置,as用来进行修改相同类名,直接\是用来引用顶层空间的文件
- namespace app\Controllers
use yii\web\controller
- namespace app\Controllers
控制器的创建
在basic/controllers文件夹下新建一个HelloController.php文件
namespace app\Controllers
use yii\web\controller
class HelloController extends Controller{
function actionIndex(){
echo “hello word”}}
访问的时候的参数就是r=hello/index其中hell代表控制器,index代表控制器的方法
访问实例:(http://www.weixin.com/web/basic/web/index.php?r=hello/index)
路由中的r=hello不能像写类一样用大写Hello ..否则找不到相应的控制器。
控制器请求处理
获取URL中的请求参数:
如果参数当中r=hello/index&id=3传递到控制器中,控制器要用到请求组件接收
request=YII::app−>request//用于接收浏览器传递过来的id,并放到变量
request中
request=Yii::
app->request;
request−>get(‘id′,20);
request->userIP;或
request−>userIp;都能获取用户的ip地址。但yii2源码里,应该是userIP通过post方式接收参数
request->post(名称,默认值)
request−>isGet
request->isPost
使用请求组件的get方式获取
\YII::app->request()
$request->get(id);
几个注意点:
命名空间:controllers有s;
引用命名空间:Controller里C是大写;
操作:actionIndex是规范写法,不存在action后面接自定义的操作名;
session,cookie操作
session=Yii::
app->session; //取得session
session−>isActive;//判断session状态
session->open(); //开启session
session−>set(‘user′,‘李狗蛋′);//往session中写入数据
session[‘user’] = ‘李狗蛋’; //写的另一种形式
$session->get(‘user’); //取session中的数据
session−>remove(‘user′);//删除session中的数据(字段)unset( session[‘user’]); //删除的另一种方式
//server到客户端
cookie=Yii::
app->response->cookies; //获取cookie
cookiedata=array(‘name′=>′user′,‘value′=>′slcheng′); cookie->add(new yii/web/Cookie( cookiedata));//设置cookie数据 cookie->remove(‘user’); //删除cookie数据
//从客户端取得cookie
cookie=Yii::
app->request->cookies; //获得浏览器请求的数据
cookie=\YII::
app->response->cookie;
cookiedata=array(‘name′=>′user′,′value′=>′zhangsi′);
cookes->add(new Cookie(
cookiedata));
cookies->remove(‘id’);
cookies=\YII::
app-.request->cookies;
echo $cookies->getValue(‘users’,20);