YII框架学习笔记之命名空间、操作响应与视图操作示例


Posted in PHP onApril 30, 2019

本文实例讲述了YII框架命名空间、操作响应与视图操作。分享给大家供大家参考,具体如下:

YII基础准备

1.命名空间

<?php
/****假设有三个同名的类,输出的值为A,B,C****/
use a\b\c\apple;
use d\e\f\apple as bApple;
use g\h\i\apple;
$app = new apple();//A
$app = new bApple();//B
$app = new \Apple();//C 调用的是全局的

2.操作响应

<?php 
namespace app\controllers;
use yii\web\Controller;
use yii\data\Pagination;
use app\models\Country;
class CountryController extends Controller
{
  public function actionIndex()//不叫方法叫操作
  {
    $request = \YII::$app->request;//能够获取到url值
    echo $request->get('id',20);//如果没有传参可以设置默认值
    if($request->isGet) //isPut
    {
      echo "this is get method";
    }
    echo $request->userIP;//获取用户IP
    $res = \YII::$app->response;//获取响应状态
    $res->statusCode = 404;//人为设置响应状态码
    //$res->headers->add('pragma','no-cache');//设置head不设置缓存
    $res->headers->set('pragma','max-age=5');//设置head缓存5分?秒钟
    $res->headers->remove('pragma');
    //跳转
    $res->headers->add("location","http://www.baidu.com");
    $this->redirect("http://www.baidu.com",302);
    //文件下载
    $res->headers->add('content-disposition','attachment;filename="a.jpg"');
    $res->sendFile("robots.txt");
  }
}

3. Yii视图操作

<?php
namespace app\controllers;
use yii\web\Controller;
class HelloController extends Controller
{
public function actionIndex()
{
$hellp_str = "hello God!";
$data = array();
$data["view_hello_str"] = $hello_str;
return $this->renderPartial("index",$data);
}
}
?>

views\hello\index.php

$helper_str = "hello world!<script>console.log(111);</script>"
<?php
use yii\helpers\Html;//转义
use yii\helpers\HtmlPurifier;//过滤html
<h1><?= Html::encode($view_hello_str);?></h1> <!--Html::encode() 能防止跨站脚本攻击,转义html标签-->
<h1><?= HtmlPurifier::process($view_hello_str);?></h1>
<?= $this->render('_overview') ?><!--在一个视图中调用另一个视图-->

禁用布局

控制器内控制:

public $layout=false/'layout'

控制器成员方法内控制:

$this->layout=false/'layout'

视图中选择布局:

$this->context->layout=false/'layout'

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP与MySQL交互使用详解
Oct 09 PHP
PHP循环语句笔记(foreach,list)
Nov 29 PHP
PHP性能优化工具篇Benchmark类调试执行时间
Dec 06 PHP
PHP时间戳 strtotime()使用方法和技巧
Oct 29 PHP
PHP结合Jquery和ajax实现瀑布流特效
Jan 07 PHP
PHP随机数 C扩展随机数
May 04 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
利用Laravel事件系统如何实现登录日志的记录详解
May 20 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
Jun 29 PHP
PHP实现的装箱算法示例
Jun 23 PHP
php的RSA加密解密算法原理与用法分析
Jan 23 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
Feb 10 PHP
YII框架关联查询操作示例
Apr 29 #PHP
YII框架页面缓存操作示例
Apr 29 #PHP
YII框架http缓存操作示例
Apr 29 #PHP
PHP常见的几种攻击方式实例小结
Apr 29 #PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 #PHP
详解提高使用Java反射的效率方法
Apr 29 #PHP
Thinkphp整合阿里云OSS图片上传实例代码
Apr 28 #PHP
You might like
有关 PHP 和 MySQL 时区的一点总结
2008/03/26 PHP
php的正则处理函数总结分析
2008/06/20 PHP
php面向对象全攻略 (十四) php5接口技术
2009/09/30 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
jQuery 常见学习网站与参考书
2009/11/09 Javascript
写出更好的JavaScript程序之undefined篇(中)
2009/11/23 Javascript
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
jQuery表单验证插件formValidator(改进版)
2012/02/03 Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
2013/07/09 Javascript
js中top的作用深入剖析
2014/03/04 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
小程序实现按下录音松开识别语音
2019/11/22 Javascript
js实现车辆管理系统
2020/08/26 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
python3.5的包存放的具体路径
2020/08/16 Python
财务会计人员岗位职责
2013/11/30 职场文书
村容村貌整治方案
2014/05/21 职场文书
拾金不昧锦旗标语
2014/06/27 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
买房协议书范本
2014/10/23 职场文书
2014幼儿园中班工作总结
2014/11/10 职场文书
学校施工安全责任书
2015/01/29 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书