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 相关文章推荐
vs中通过剪切板循环来循环粘贴不同内容
Apr 30 PHP
php _autoload自动加载类与机制分析
Feb 10 PHP
PHP中__get()和__set()的用法实例详解
Jun 04 PHP
php-perl哈希算法实现(times33哈希算法)
Dec 30 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
Jun 24 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
php 中奖概率算法实现代码
Jan 25 PHP
老生常谈文本文件和二进制文件的区别
Feb 27 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
Mar 18 PHP
PHP实用小技巧之调用录像的方法
Dec 05 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之第九天
2006/10/09 PHP
用PHP与XML联手进行网站编程代码实例
2008/07/10 PHP
PHP中获取时间的下一周下个月的方法
2014/03/18 PHP
PHP获取服务器端信息的方法
2014/11/28 PHP
php生成RSS订阅的方法
2015/02/13 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
列表内容的选择
2006/06/30 Javascript
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
CSS+Jquery实现页面圆角框方法大全
2009/12/24 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
Extjs 点击复选框在表格中增加相关信息行
2016/07/12 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
2017/11/21 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
详解Axios统一错误处理与后置
2018/09/26 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
对于Python中线程问题的简单讲解
2015/04/03 Python
python使用PyGame模块播放声音的方法
2015/05/20 Python
Python实现类的创建与使用方法示例
2017/07/25 Python
Python爬豆瓣电影实例
2018/02/23 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
澳洲女装时尚在线:Blue Bungalow
2018/05/05 全球购物
几个Shell Script面试题
2012/08/31 面试题
《盲人摸象》教学反思
2014/02/16 职场文书
客服部班长工作责任制
2014/02/25 职场文书
担保书怎么写
2014/04/01 职场文书
领导工作表现评语
2015/01/04 职场文书
python tkinter实现定时关机
2021/04/21 Python
php去除deprecated的实例方法
2021/11/17 PHP