Yii2框架基础篇学习-控制器
来源:互联网 发布:mac换输入法快捷键 编辑:程序博客网 时间:2024/05/17 08:54
相关的安装及配置参考中文文档,一步一步走下来即可。
下面对这几天学习的东西进行一个简单的总结。
1、Yii的应用结构:
每个应用都有一个入口脚本 web/index.php,这是整个应用中唯一可以访问的 PHP 脚本。一个应用处理请求的过程如下:
1.用户向入口脚本 web/index.php 发起请求。
2.入口脚本加载应用配置并创建一个应用实例去处理请求。
3.应用通过请求组件解析请求的路由。
4.应用创建一个控制器实例去处理请求。
5.控制器创建一个操作实例并针对操作执行过滤器。
6.如果任何一个过滤器返回失败,则操作退出。
7.如果所有过滤器都通过,操作将被执行。
8.操作会加载一个数据模型,或许是来自数据库。
9.操作会渲染一个视图,把数据模型提供给它。
10.渲染结果返回给响应组件。
11.响应组件发送渲染结果给用户浏览器
可以看到中间有模型-视图-控制器 ,即常说的MVC。入口脚本并不会处理请求,而是把请求交给了应用主体,在处理请求时,会用到控制器,如果用到数据库中的东西,就会去访问模型,如果处理请求完成,要返回给用户信息,则会在视图中回馈要返回给用户的内容。
2、控制器的创建
命名规范:控制器命名时必须以Controller为结尾;
命名空间:需要给控制器指定命名空间,即控制器所在的目录
namespace frontend\controllers;
如果控制器想要访问其他的类,则需要使用use将这个类引入页面;
use yii\web\Controller;use Yii;
一个完整的控制器如下:
<?phpnamespace frontend\controllers;//命名空间use yii\web\Controller;//引入类class HelloController extends Controller { //继承自Controller//这里写操作}?>
控制器中需要写操作,操作是最终用户可以直接访问并执行的对象。一个操作的执行结果就是最终用户收到的响应内容。操作必须声明在控制器中。
操作命名规范:Yii 使用 action 前缀区分普通方法和操作。action 前缀后面的名称被映射为操作的 ID。操作ID的首字母要大写,如下:
public function actionIndex(){ $request = YII::$app->request;//获取请求组件 $request->get('id');//获取get方法数据 $request->post('id');//获取post方法数据 $request->isGet;//判断是不是get请求 $request->isPost;//判断是不是post请求 $request->userIp;//获取用户IP地址 $res = YII::$app->response;//获取响应组件 $res->statusCode = '404';//设置状态码 $this->redirect('http://baodu.com');//页面跳转 $res->sendFile('./b.jpg');//文件下载
3、控制器-session处理
在HelloController中写操作
<?phpnamespace frontend\controllers;use Yii;use yii\web\Controller;class HelloController extends Controller{ public function actionIndex(){ $session = YII::$app->session; $session->isActive;//判断session是否开启 $session->open();//开启session //设置session值 $session->set('user','zhangsan');//第一个参数为键,第二个为值 $session['user']='zhangsan'; //获取session值 $session->get('user'); $session['user']; //删除session值 $session-remove('user'); unset($session['user']); }}?>
4、控制器-Cookie处理
Chrome里面,审查元素时再Resource里面可以看到cookie数据的相关信息。
<?phpnamespace frontend\controllers;use Yii;use yii\web\Controller;class HelloController extends Controller{ public function actionIndex(){ $cookies = Yii::$app->response->cookies;//获取cookie对象 $cookie_data = array('name'=>'user','value'=>'zhangsan')//新建cookie数据 $cookies->add(new Cookie($cookie_data)); $cookies-remove('id');//删除cookie $cookies.getValue('user');//获取cookie}?>
5、路由
简单说一下yii中的路由
http://hostname/index.php?r=site/say
上面 URL 中的参数 r代表路由,是整个应用级的,指向特定操作的独立 ID。路由格式是 控制器 ID/操作 ID。应用接受请求的时候会检查参数,使用控制器 ID 去确定哪个控制器应该被用
来处理请求。然后相应控制器将使用操作 ID 去确定哪个操作方法将被用来做具体工作。
- Yii2框架基础篇学习-控制器
- YII2框架学习 基础篇(二) YII2数据库操作
- YII2框架学习 基础篇(一)
- Yii2.0框架基础--修改控制器ID指向控制器类
- Yii2.0框架基础--修改默认控制器和方法
- yii2框架(二):控制器和视图
- Yii2.0框架基础--模块
- Yii2.0框架基础--布局
- PHP Yii2.0 basic基础框架中添加yii2-redis
- YII2框架学习 高效篇(一) 延迟加载
- YII2框架学习 高效篇(二) 数据缓存
- YII2框架学习 高效篇(四) http缓存
- YII2框架学习 高效篇(五) Gii工具
- YII2框架学习 扩展篇(一) 模块化设计
- YII2框架学习 扩展篇(二) 事件机制
- YII2框架学习 扩展篇(三) Mixin技术
- YII2框架学习 扩展篇(四) 依赖注入
- Yii2.0框架基础--别名(Aliases)
- Hibernate 一对一映射
- Android程序优化之异常终止数据恢复
- Base64编码
- CAS实现SSO单点登录原理
- UFLDL 11 卷积与池化 convolution pooling
- Yii2框架基础篇学习-控制器
- 图的邻接矩阵和邻接表的比较
- 淘宝sui学习笔记1:引用
- delphi7生成简单的验证识别码
- struts2的result中传递多个参数
- ruby环境sass编译中文出现Syntax error: Invalid GBK character错误解决方法
- ComparisonOfDemosacking
- UILabel自适应分行显示
- JSTL C标签 <c:if>判断参数是否为空