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输出控制功能在简繁体转换中的应用
Oct 09 PHP
一个简单的php实现的MySQL数据浏览器
Mar 11 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
Mar 27 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
Aug 04 PHP
thinkphp缓存技术详解
Dec 09 PHP
PHP生成随机字符串(3种方法)
Sep 25 PHP
php简单的上传类分享
May 15 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
Aug 17 PHP
php实现多维数组排序的方法示例
Mar 23 PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 04 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
Apr 23 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与C#分别格式化文件大小的代码
2011/05/14 PHP
php设计模式 Composite (组合模式)
2011/06/26 PHP
php输出xml格式字符串(用的这个)
2012/07/12 PHP
php array_pop 删除数组最后一个元素实例
2016/11/02 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
event对象的方法 兼容多浏览器
2009/06/27 Javascript
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
js控制容器隐藏出现防止样式变化的两种方法
2014/04/25 Javascript
jscript读写二进制文件的方法
2015/04/22 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
2015/11/17 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
深入Node TCP模块的理解
2019/03/13 Javascript
ionic3双击返回退出应用的方法
2019/09/17 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
Python入门教程之运算符与控制流
2016/08/17 Python
python 整数越界问题详解
2019/06/27 Python
python2 对excel表格操作完整示例
2020/02/23 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
Python 存取npy格式数据实例
2020/07/01 Python
浅析Python 序列化与反序列化
2020/08/05 Python
Numpy数组的广播机制的实现
2020/11/03 Python
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
金融管理毕业生求职信
2014/03/03 职场文书
财务部总监岗位职责
2014/03/12 职场文书
2016高考感言
2015/08/01 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
创业计划书之酒厂
2019/10/14 职场文书
php字符串倒叙
2021/04/01 PHP
MySQL 数据类型选择原则
2021/05/27 MySQL
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技