12. Yii 2.0 的帮助类

本文介绍Yii2.0框架中的系统帮助类,包括ArrayHelper、StringHelper、Url、Html等,并通过示例展示了如何在控制器中使用这些帮助类实现数据处理、字符串截断、URL生成等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值