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 相关文章推荐
用文本文件制作留言板提示(上)
Oct 09 PHP
php在线生成ico文件的代码
Oct 09 PHP
php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
Jun 21 PHP
PHP 函数学习简单小结
Jul 08 PHP
php使用glob函数快速查询指定目录文件的方法
Nov 15 PHP
php使用GD库创建图片缩略图的方法
Jun 10 PHP
FastCGI 进程意外退出造成500错误
Jul 26 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
Mar 14 PHP
PHP递归实现汉诺塔问题的方法示例
Nov 25 PHP
详细解读php的命名空间(一)
Feb 21 PHP
PHP实现的策略模式示例
Mar 20 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输出缓存ob系列函数详解
2014/03/11 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
根据出生日期自动取得星座的js代码
2010/07/20 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
再谈javascript原型继承
2014/11/10 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
JQueryMiniUI按照时间进行查询的实现方法
2017/06/07 jQuery
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
javascript合并两个数组最简单的实现方法
2019/09/14 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
[02:11]2014DOTA2 TI专访VG战队Fenrir:队伍气氛良好
2014/07/11 DOTA
浅析Python多线程下的变量问题
2015/04/28 Python
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
Python生成器generator用法示例
2018/08/10 Python
python多线程并发及测试框架案例
2019/10/15 Python
python实现飞行棋游戏
2020/02/05 Python
关于TensorFlow新旧版本函数接口变化详解
2020/02/10 Python
python 解决print数组/矩阵无法完整输出的问题
2020/02/19 Python
python numpy库linspace相同间隔采样的实现
2020/02/25 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
使用Python实现批量ping操作方法
2020/05/06 Python
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
含精油的天然有机化妆品:Indemne
2019/08/27 全球购物
忠诚教育心得体会
2014/09/03 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
创业计划书之酒店
2019/08/30 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python
解析Java中的static关键字
2021/06/14 Java/Android