YII定义常用的全局函数

由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。
例如,Yii::app()->user;Yii::app()->params['name'] ;等等。

我们可以自行设定全局函数,使得代码看起来更加简洁易用。

我们可以保存在functions.php在protected目录下。然后,在入口脚本index.php的,我们包括在开始文件
require_once dirname(__FILE__) . '/protected/functions.php');
现在我们可以在应用的任何地方使用我们的全局函数,例如可以使用user()代替Yii::app()->user。
注:如果你打算发布一个可重用的组件,请不要组件中使用全局函数,在不同的应用配置中,可能导致无法使用。
同时,也应注意与第三方库的冲突,可考虑对每个函数前加上自己的前缀,已做区分,例如框架核心均已C为前缀。

 

下面是代码包含最常用的一些快捷功能:
/**
 * 段标记
 */
defined('DS') or define('DS', DIRECTORY_SEPARATOR);

/**
 * 精简版Yii::app()
 */
function app()
{
	return Yii::app();
}
/**
 * 精简版的Yii::app()->getClientScript
 */
function cs()
{
	return Yii::app()->getClientScript();
}
/**
 * 精简版的Yii::app()->getUser();
 */
function user()
{
	return Yii::app()->getUser();
}
/**
 * 精简版的创建URL Yii::app()->createUrl( $route, $params, $ampersand);
 */
function url( $route, $params, $ampersand = '&' )
{
	return Yii::app()->createUrl( $route, $params, $ampersand);
}
/**
 * 精简版 htmlspecialchars();
 */
function h( $text )
{
	return htmlspecialchars( $text, ENT_QUOTES, Yii::app()->charset);
}
/**
 * 精简版CHtml::link()
 */
function l( $text , $url = '###', $htmlOptions = array() )
{
	return CHtml::link( $text, $url, $htmlOptions );
}
/**
 * 精简Yii::t();
 */
function t( $message, $category = 'stay', $params = array(), $source = null, $language = null )
{
	return Yii::t( $category, $message, $params, $source, $language );
}
/**
 * 精简Yii::app()->request->baseUrl
 */
function bu( $url = null )
{
	static $baseUrl;
	if ( $baseUrl === null ) 
		$baseUrl = Yii::app()->getRequest()->getBaseUrl();
	return $url === null ? $baseUrl : $baseUrl . '/' . ltrim( $url, '/' );
}
/**
 * 获取常量的精简
 */
function param( $name )
{
	return Yii::app()->params[ $name ];
}
/**
 * 打印数组的精简
 */
function dump( $string )
{
	return CVarDumper::dump( $string, 10, true );
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值