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程序设计有所帮助。