12. Yii 2.0 的帮助类

来源:互联网 发布:linux 虚拟ip 编辑:程序博客网 时间:2024/06/11 05:27
以 Yii 2.0 基础版为例,高级版类似。
常用的系统帮助类主要有:ArrayHelper、StringHelper、Url、Html、Json等。

Yii 2.0 框架的系统帮助类目录为 /basic/vendor/yiisoft/yii2/helpers,以 Base 开头的类文件为对应帮助类的基类(父类)。

如果想对某个帮助类里面的方法进行扩展,可以在 basic 目录下,新建一个 helpers 目录,作为自定义的帮助类目录,在里面新建一个帮助类继承 Yii 的系统帮助类 或者 不继承而完全自定义一个帮助类。
  
这里,我们只介绍如何使用 Yii 2.0 系统帮助类。
在控制器层 /basic/controllers 目录,新增一个控制器文件 HelperController.php 用于演示,代码如下:
  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
<?php
namespace app\controllers;
use yii\web\Controller;
use yii\helpers\ArrayHelper;
use yii\helpers\StringHelper;
use yii\helpers\Url;
use yii\helpers\Html;
class HelperController extends Controller
{
/**
* 测试调用 ArrayHelper 帮助类
*/
public function actionArray()
{
$arr = [
['id'=>11, 'name'=>'jack', 'age'=>30],
['id'=>12, 'name'=>'rose', 'age'=>21],
['id'=>13, 'name'=>'lily', 'age'=>28],
];
// $res = ArrayHelper::getColumn($arr, 'age');
// print_r($res);
// $res = ArrayHelper::map($arr, 'id', 'name');
// var_dump($res);
ArrayHelper::multisort($arr, 'age', SORT_ASC); // 二维数组按照键名排序(很常用)
echo json_encode($arr);
}
/**
* 测试调用 StringHelper 帮助类
*/
public function actionString()
{
$string = '这是一个string测试';
echo StringHelper::truncate($string, 6, '...');
echo '<br>';
var_dump(StringHelper::startsWith($string, '这是'));
}
/**
* 测试调用 Url 帮助类
*/
public function actionUrl()
{
// toRoute方法,根据路由规则,生成url地址
// 1.传字符串
echo Url::toRoute('site/index').'<br>';
// 2.传数组
echo Url::toRoute(['site/index', 'id' => '1', 'src' => 'ref1', '#' => 'name']).'<br>';
// 3.传两个参数,第二个参数指定是否为绝对url(或协议类型)
echo Url::toRoute('site/index', true).'<br>';
echo Url::toRoute('site/index', 'https').'<br>';
// 4.传路径别名
\Yii::setAlias('posts', 'site/index'); // 设置路径别名(局部的)
echo Url::toRoute('@posts').'<br>';
// to方法
echo Url::to(['site/index']).'<br>';
echo Url::to().'<br>';
echo Url::to('images/logo.gif').'<br>';
echo Url::to('@web/images/logo.gif').'<br>';
echo Url::to('@web/images/logo.gif', true).'<br>'; // 带域名的资源地址
}
/**
* 查看 Yii 中 已经设置好的路径别名(全局的)
*/
public function actionAlias()
{
echo \Yii::getAlias('@app').'<br>';
echo \Yii::getAlias('@runtime').'<br>';
echo \Yii::getAlias('@vendor').'<br>';
echo \Yii::getAlias('@bower').'<br>';
echo \Yii::getAlias('@npm').'<br>';
echo \Yii::getAlias('@webroot').'<br>';
echo \Yii::getAlias('@web').'<br>';
}
/**
* 测试调用 Html 帮助类
*/
public function actionHtml()
{
// encode方法,将html特殊字符编码为html实体
$content = '<, >, ", \', \\';
echo Html::encode($content).'<br>';
// decode方法,将html实体解码为html特殊字符
echo Html::decode($content).'<br>';
}
}
 来自CODE的代码片
snippet_file_0.php
然后,在浏览器地址栏输入下面的地址,查看效果:
http://basic.com/helper/array
http://basic.com/helper/string
http://basic.com/helper/url
http://basic.com/helper/alias
http://basic.com/helper/html
原创粉丝点击