Yii全局函数用法示例


Posted in PHP onJanuary 22, 2017

本文实例讲述了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为前缀。

下面是代码包含最常用的一些快捷功能。如还需其他,请自行添加。

/**
* This is the shortcut to DIRECTORY_SEPARATOR
*/
defined('DS') or define('DS', DIRECTORY_SEPARATOR);
/**
* This is the shortcut to Yii::app()
*/
function app() {
  return Yii: :app();
}
/**
* This is the shortcut to Yii::app()->clientScript
*/
function cs() {
  // You could also call the client script instance via Yii::app()->clientScript
  // But this is faster
  return Yii: :app() - >getClientScript();
}
/**
* This is the shortcut to Yii::app()->user.
*/
function user() {
  return Yii: :app() - >getUser();
}
/**
* This is the shortcut to Yii::app()->createUrl()
*/
function url($route, $params = array(), $ampersand = '&') {
  return Yii: :app() - >createUrl($route, $params, $ampersand);
}
/**
* This is the shortcut to CHtml::encode
*/
function h($text) {
  return htmlspecialchars($text, ENT_QUOTES, Yii: :app() - >charset);
}
/**
* This is the shortcut to CHtml::link()
*/
function l($text, $url = '#', $htmlOptions = array()) {
  return CHtml: :link($text, $url, $htmlOptions);
}
/**
* This is the shortcut to Yii::t() with default category = 'stay'
*/
function t($message, $category = 'stay', $params = array(), $source = null, $language = null) {
  return Yii: :t($category, $message, $params, $source, $language);
}
/**
* This is the shortcut to Yii::app()->request->baseUrl
* If the parameter is given, it will be returned and prefixed with the app baseUrl.
*/
function bu($url = null) {
  static $baseUrl;
  if ($baseUrl === null) $baseUrl = Yii: :app() - >getRequest() - >getBaseUrl();
  return $url === null ? $baseUrl: $baseUrl.'/'.ltrim($url, '/');
}
/**
* Returns the named application parameter.
* This is the shortcut to Yii::app()->params[$name].
*/
function param($name) {
  return Yii: :app() - >params[$name];
}
/**
* A useful one that I use in development is the following
* which dumps the target with syntax highlighting on by default
*/
function dump($target) {
  return CVarDumper: :dump($target, 10, true);
}

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
Oct 09 PHP
PHP批量生成缩略图的代码
Jul 19 PHP
php检测iis环境是否支持htaccess的方法
Feb 18 PHP
php统计文章排行示例
Mar 04 PHP
ThinkPHP内置jsonRPC的缺陷分析
Dec 18 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
php按单词截取字符串的方法
Apr 07 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
Dec 18 PHP
PHP检测接口Traversable用法详解
Dec 29 PHP
php实现微信分享朋友链接功能
Feb 18 PHP
redis+php实现微博(三)微博列表功能详解
Sep 23 PHP
php pdo连接数据库操作示例
Nov 18 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
Jan 22 #PHP
微信公众号OAuth2.0网页授权问题浅析
Jan 21 #PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
Jan 21 #PHP
PHP三种方式实现链式操作详解
Jan 21 #PHP
PHP将字符串首字母大小写转换的实例
Jan 21 #PHP
thinkphp 手机号和用户名同时登录
Jan 20 #PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
Jan 20 #PHP
You might like
PHP提取中文首字母
2008/04/09 PHP
php5 pdo新改动加载注意事项
2008/09/11 PHP
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
2016/08/21 PHP
php取出数组单个值的方法
2018/03/12 PHP
PHP实现用session来实现记录用户登陆信息
2018/10/15 PHP
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
apply和call方法定义及apply和call方法的区别
2015/11/15 Javascript
总结JavaScript三种数据存储方式之间的区别
2016/05/03 Javascript
大型JavaScript应用程序架构设计模式
2016/06/29 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
理解Python中的With语句
2015/02/02 Python
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
Python for循环与range函数的使用详解
2019/03/23 Python
Python多版本开发环境管理工具介绍
2019/07/03 Python
Python chardet库识别编码原理解析
2020/02/18 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
办公室前台岗位职责
2014/01/04 职场文书
写给爸爸的道歉信
2014/01/15 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
银行授权委托书样本
2014/10/13 职场文书
运动会加油稿20字
2014/11/15 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
会议承办单位欢迎词
2015/09/30 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
教你用Python matplotlib库制作简单的动画
2021/06/11 Python