Yii全局函数用法示例
本文实例讲述了Yii全局函数用法。分享给大家供大家参考,具体如下:
由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。
例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。
我们可以保存在globals.php在protected/config目录下。然后,在入口脚本index.php中,定义如下内容:
$globals=dirname(__FILE__).'/protected/config/globals.php'; ... require_once($yii); require_once($globals);
现在我们可以在应用的任何地方使用我们的全局函数,例如可以使用user()代替Yii::app()->user。注:如果你打算发布一个可重用的组件,请不要组件中使用全局函数,在不同的应用配置中,可能导致无法使用。同时,也应注意与第三方库的冲突,可考虑对每个函数前加上自己的前缀,已做区分,例如框架核心均已C为前缀。
下面是代码包含最常用的一些快捷功能。如还需其他,请自行添加。
/**
*ThisistheshortcuttoDIRECTORY_SEPARATOR
*/
defined('DS')ordefine('DS',DIRECTORY_SEPARATOR);
/**
*ThisistheshortcuttoYii::app()
*/
functionapp(){
returnYii::app();
}
/**
*ThisistheshortcuttoYii::app()->clientScript
*/
functioncs(){
//YoucouldalsocalltheclientscriptinstanceviaYii::app()->clientScript
//Butthisisfaster
returnYii::app()->getClientScript();
}
/**
*ThisistheshortcuttoYii::app()->user.
*/
functionuser(){
returnYii::app()->getUser();
}
/**
*ThisistheshortcuttoYii::app()->createUrl()
*/
functionurl($route,$params=array(),$ampersand='&'){
returnYii::app()->createUrl($route,$params,$ampersand);
}
/**
*ThisistheshortcuttoCHtml::encode
*/
functionh($text){
returnhtmlspecialchars($text,ENT_QUOTES,Yii::app()->charset);
}
/**
*ThisistheshortcuttoCHtml::link()
*/
functionl($text,$url='#',$htmlOptions=array()){
returnCHtml::link($text,$url,$htmlOptions);
}
/**
*ThisistheshortcuttoYii::t()withdefaultcategory='stay'
*/
functiont($message,$category='stay',$params=array(),$source=null,$language=null){
returnYii::t($category,$message,$params,$source,$language);
}
/**
*ThisistheshortcuttoYii::app()->request->baseUrl
*Iftheparameterisgiven,itwillbereturnedandprefixedwiththeappbaseUrl.
*/
functionbu($url=null){
static$baseUrl;
if($baseUrl===null)$baseUrl=Yii::app()->getRequest()->getBaseUrl();
return$url===null?$baseUrl:$baseUrl.'/'.ltrim($url,'/');
}
/**
*Returnsthenamedapplicationparameter.
*ThisistheshortcuttoYii::app()->params[$name].
*/
functionparam($name){
returnYii::app()->params[$name];
}
/**
*AusefulonethatIuseindevelopmentisthefollowing
*whichdumpsthetargetwithsyntaxhighlightingonbydefault
*/
functiondump($target){
returnCVarDumper::dump($target,10,true);
}
更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。