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 相关文章推荐
怎样在UNIX系统下安装MySQL
Oct 09 PHP
使用网络地址转换实现多服务器负载均衡
Oct 09 PHP
第九节--绑定
Nov 16 PHP
php简单浏览目录内容的实现代码
Jun 07 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
Jun 25 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
Jan 30 PHP
ThinkPHP权限认证Auth实例详解
Jul 22 PHP
php类的定义与继承用法实例
Jul 07 PHP
php中实现字符串翻转的方法
Feb 22 PHP
总结的一些PHP开发中的tips(必看篇)
Mar 24 PHP
PHP判断密码强度的方法详解
May 26 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
Oct 17 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 FPDF类库应用实现代码
2009/03/20 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
基于jQuery的js分页代码
2010/06/10 Javascript
js实现连续英文字符自动换行兼容ie6 ie7和firefox
2013/09/06 Javascript
用javascript删除当前行,添加行(示例代码)
2013/11/25 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
jQuery实现精美的多级下拉菜单特效
2015/03/14 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
原生ajax处理json格式数据的实例代码
2016/12/25 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
Pyramid添加Middleware的方法实例
2013/11/27 Python
django将网络中的图片,保存成model中的ImageField的实例
2019/08/07 Python
Python数据分析模块pandas用法详解
2019/09/04 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
马来西亚最热门的在线时尚商店:FashionValet
2018/11/11 全球购物
总经理秘书的岗位职责
2013/12/27 职场文书
英语专业学生的自我评价
2013/12/30 职场文书
政府绩效管理实施方案
2014/05/04 职场文书
环保专项行动方案
2014/05/12 职场文书
复活读书笔记
2015/06/29 职场文书
2019最新激励员工口号大全!
2019/06/28 职场文书
如何利用js在两个html窗口间通信
2021/04/27 Javascript