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生成的html meta和link标记在body标签里 顶部有个空行
May 18 PHP
openPNE常用方法分享
Nov 29 PHP
有关PHP性能优化的介绍
Jun 20 PHP
PHP 循环删除无限分类子节点的实现代码
Jun 21 PHP
PHP SPL使用方法和他的威力
Nov 12 PHP
PHP中鲜为人知的10个函数
Feb 28 PHP
php实现字符串翻转的方法
Mar 27 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
Jun 13 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 PHP
PHP删除字符串中非字母数字字符方法总结
Jan 20 PHP
laravel通用化的CURD的实现
Dec 13 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
Dec 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录入页面中动态从数据库中提取数据的实现
2006/10/09 PHP
非常不错的MySQL优化的8条经验
2008/03/24 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
写出更好的JavaScript程序之undefined篇(中)
2009/11/23 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
jQuery EasyUI API 中文文档 - ComboBox组合框
2011/10/07 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
Python 转义字符详细介绍
2017/03/21 Python
Python实现网站注册验证码生成类
2017/06/08 Python
python 上下文管理器使用方法小结
2017/10/10 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
品学兼优的大学生自我评价
2013/09/20 职场文书
建筑工程技术应届生自荐信
2013/09/27 职场文书
2013英文求职信模板范文
2013/11/15 职场文书
新学期决心书
2014/03/11 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
卖房授权委托书样本
2014/10/05 职场文书
创先争优承诺书
2015/01/20 职场文书
证劵公司反洗钱宣传活动总结
2015/05/08 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
基于Python实现西西成语接龙小助手
2022/08/05 Golang