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 相关文章推荐
BBS(php & mysql)完整版(五)
Oct 09 PHP
php ignore_user_abort与register_shutdown_function 使用方法
Jun 14 PHP
将文件夹压缩成zip文件的php代码
Dec 14 PHP
一步一步学习PHP(6) 面向对象
Feb 16 PHP
php共享内存段示例分享
Jan 20 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
PHP采集静态页面并把页面css,img,js保存的方法
Dec 23 PHP
在PHP中使用FastCGI解析漏洞及修复方案
Nov 10 PHP
php微信公众号js-sdk开发应用
Nov 28 PHP
PHP 观察者模式深入理解与应用分析
Sep 25 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 PHP
利用ajax+php实现商品价格计算
Mar 31 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提交json格式数据
2013/06/29 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
PHP实现的QQ空间g_tk加密算法
2015/07/09 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
tp5.1 框架数据库-数据集操作实例分析
2020/05/26 PHP
理解Javascript_03_javascript全局观
2010/10/11 Javascript
extjs ColumnChart设置不同的颜色实现代码
2013/05/17 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
解决option标签selected="selected"属性失效的问题
2017/11/06 Javascript
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
vue的hash值原理也是table切换实例代码
2020/12/14 Vue.js
微信小程序实现简单购物车功能
2020/12/30 Javascript
Python最长公共子串算法实例
2015/03/07 Python
关于numpy中np.nonzero()函数用法的详解
2017/02/07 Python
python-django中的APPEND_SLASH实现方法
2019/06/21 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
如何查看Django ORM执行的SQL语句的实现
2020/04/20 Python
欧舒丹美国官网:L’Occitane美国
2018/02/23 全球购物
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
个人简历自我评价
2014/02/02 职场文书
医院工作检讨书范文
2014/02/10 职场文书
遥感技术与仪器求职信
2014/02/22 职场文书
管理建议书范文
2014/05/13 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
幼儿教师师德承诺书
2014/05/23 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
2016年十一促销广告语
2016/01/28 职场文书
初三数学教学反思
2016/02/17 职场文书