YII全局函数使用

由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。
例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。

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

 

下面是代码包含最常用的一些快捷功能。
01/**
02 * This is the shortcut to DIRECTORY_SEPARATOR
03 */
04defined('DS') or define('DS',DIRECTORY_SEPARATOR);
05 
06/**
07 * This is the shortcut to Yii::app()
08 */
09function app()
10{
11    return Yii::app();
12}
13 
14/**
15 * This is the shortcut to Yii::app()->clientScript
16 */
17function cs()
18{
19    // You could also call the client script instance via Yii::app()->clientScript
20    // But this is faster
21    return Yii::app()->getClientScript();
22}
23 
24/**
25 * This is the shortcut to Yii::app()->user.
26 */
27function user()
28{
29    return Yii::app()->getUser();
30}
31 
32/**
33 * This is the shortcut to Yii::app()->createUrl()
34 */
35function url($route,$params=array(),$ampersand='&')
36{
37    return Yii::app()->createUrl($route,$params,$ampersand);
38}
39 
40/**
41 * This is the shortcut to CHtml::encode
42 */
43function h($text)
44{
45    return htmlspecialchars($text,ENT_QUOTES,Yii::app()->charset);
46}
47 
48/**
49 * This is the shortcut to CHtml::link()
50 */
51function l($text, $url = '#', $htmlOptions = array())
52{
53    return CHtml::link($text, $url, $htmlOptions);
54}
55 
56/**
57 * This is the shortcut to Yii::t() with default category = 'stay'
58 */
59function t($message,$category='stay',$params=array(), $source=null,$language=null)
60{
61    return Yii::t($category, $message, $params, $source, $language);
62}
63 
64/**
65 * This is the shortcut to Yii::app()->request->baseUrl
66 * If the parameter is given, it will be returned and prefixed with the app baseUrl.
67 */
68function bu($url=null)
69{
70    static $baseUrl;
71    if ($baseUrl===null)
72        $baseUrl=Yii::app()->getRequest()->getBaseUrl();
73    return $url===null ? $baseUrl : $baseUrl.'/'.ltrim($url,'/');
74}
75 
76/**
77 * Returns the named application parameter.
78 * This is the shortcut to Yii::app()->params[$name].
79 */
80function param($name)
81{
82    return Yii::app()->params[$name];
83}
84/**
85 * A useful one that I use in development is the following
86 * which dumps the target with syntax highlighting on by default
87 */
88function dump($target)
89{
90  return CVarDumper::dump($target, 10, true) ;
91}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值