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 相关文章推荐
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
Jun 07 PHP
基于php伪静态的实现详细介绍
Apr 28 PHP
php实现建立多层级目录的方法
Jul 19 PHP
php中file_get_contents与curl性能比较分析
Nov 08 PHP
php实现简单的语法高亮函数实例分析
Apr 27 PHP
php生成高清缩略图实例详解
Dec 07 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
Dec 05 PHP
PHP命名空间namespace的定义方法详解
Mar 29 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
Sep 27 PHP
laravel中短信发送验证码的实现方法
Apr 25 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 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
BBS(php & mysql)完整版(七)
2006/10/09 PHP
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
php实现的日历程序
2015/06/18 PHP
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
2007/11/30 Javascript
js树形控件脚本代码
2008/07/24 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
原生javascript 学习之js变量全面了解
2016/07/14 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
js微信扫描二维码登录网站技术原理
2016/12/01 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
结合Vue控制字符和字节的显示个数的示例
2018/05/17 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
JavaScript的console命令使用实例
2019/12/03 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
详解Swift中属性的声明与作用
2016/06/30 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
Python实现检测文件MD5值的方法示例
2018/04/11 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
python上selenium的弹框操作实现
2020/07/13 Python
Python实现一个优先级队列的方法
2020/07/31 Python
澳洲的服装老品牌:SABA
2018/02/06 全球购物
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
促销活动策划方案
2014/01/12 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
离职报告格式
2014/11/04 职场文书
教师求职信怎么写
2015/03/20 职场文书
2016年敬老月活动总结
2016/04/05 职场文书
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle