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中time(),date(),mktime()区别介绍
Sep 28 PHP
使用php显示搜索引擎来的关键词
Feb 13 PHP
php获取YouTube视频信息的方法
Feb 11 PHP
php实现Mongodb自定义方式生成自增ID的方法
Mar 23 PHP
ThinkPHP路由详解
Jul 27 PHP
php编程每天必学之验证码
Mar 03 PHP
PHP链表操作简单示例
Oct 15 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 PHP
Yii2实现UploadedFile上传文件示例
Feb 15 PHP
关于PHP定时发送服务的解决办法
Apr 23 PHP
Yii2选项卡的简单使用
May 26 PHP
PHP高并发和大流量解决方案整理
Mar 09 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判断变量的函数
2012/04/24 PHP
smarty获得当前url的方法分享
2014/02/14 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
javascript一些不错的函数脚本代码
2008/09/10 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
webpack4简单入门实例
2018/09/06 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
2020/02/23 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
原生JS实现汇率转换功能代码实例
2020/05/13 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
CSS3之transition实现下划线的示例代码
2018/05/30 HTML / CSS
个性大学生自我评价
2013/12/04 职场文书
文明家庭先进事迹材
2014/01/27 职场文书
爱护公共设施标语
2014/06/24 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
2015年超市员工工作总结
2015/05/04 职场文书
幼儿园园长六一致辞
2015/07/31 职场文书
消防安全培训工作总结
2015/10/23 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python