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在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
无数据库的详细域名查询程序PHP版(3)
Oct 09 PHP
php jquery 实现新闻标签分类与无刷新分页
Dec 18 PHP
php防注入,表单提交值转义的实现详解
Jun 10 PHP
深入array multisort排序原理的详解
Jun 18 PHP
浅析关于PHP位运算的简单权限设计
Jun 30 PHP
PHP生成不重复标识符的方法
Nov 21 PHP
php实现的一段简单概率相关代码
May 30 PHP
PHP经典算法集锦【经典收藏】
Sep 14 PHP
PHP简单获取随机数的常用方法小结
Jun 07 PHP
如何在PHP中使用数组
Jun 09 PHP
PHP7 新增常量
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使用curl简单抓取远程url的方法
2015/03/13 PHP
PHP-FPM的配置与优化讲解
2019/03/15 PHP
js类中获取外部函数名的方法与代码
2007/09/12 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
微信小程序 textarea 组件详解及简单实例
2017/01/10 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
JS如何实现动态添加的元素绑定事件
2019/11/12 Javascript
微信小程序自定义tabBar的踩坑实践记录
2020/11/06 Javascript
Python 实现一行输入多个值的方法
2018/04/21 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
Python双向循环链表实现方法分析
2018/07/30 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
Jupyter notebook如何修改平台字体
2020/05/13 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
几个判断型的面试题
2012/07/03 面试题
财务经理的岗位职责
2013/12/17 职场文书
会计专业个人求职信范文
2014/01/08 职场文书
杠杆的科学教学反思
2014/01/10 职场文书
文秘人员工作职责
2014/01/31 职场文书
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
购房委托书范本
2014/09/18 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
导师工作推荐信
2015/03/27 职场文书
考勤制度通知
2015/04/25 职场文书
保护环境建议书作文300字
2015/09/14 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
nginx常用命令放入shell脚本详解
2021/03/31 Servers