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 什么是PEAR?(第三篇)
Mar 19 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 PHP
php 操作调试的方法
Jul 12 PHP
基于php缓存的详解
May 15 PHP
php调用c接口无错版介绍
Mar 11 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
Nov 04 PHP
Joomla简单判断用户是否登录的方法
May 04 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 PHP
老生常谈PHP面向对象之注册表模式
May 26 PHP
PHP设计模式之工厂方法设计模式实例分析
Apr 25 PHP
laravel 实现划分admin和home 模块分组
Oct 15 PHP
如何在Laravel之外使用illuminate组件详解
Sep 20 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 实现浏览记录并按日期分组
2017/05/11 PHP
js关闭子窗体刷新父窗体实现方法
2012/12/04 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
获取数组中最大最小值方法js代码(自写)
2013/08/12 Javascript
js如何获取兄弟、父类等节点
2014/01/06 Javascript
javascript实现根据身份证号读取相关信息
2014/12/17 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
Vue自定义指令写法与个人理解
2019/02/09 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
分享8个JavaScript库可更好地处理本地存储
2020/10/12 Javascript
使用AutoJs实现微信抢红包的代码
2020/12/31 Javascript
python连接oracle数据库实例
2014/10/17 Python
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
Python学习笔记之if语句的使用示例
2017/10/23 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
Python实现桶排序与快速排序算法结合应用示例
2017/11/22 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
2018/01/15 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
django教程如何自学
2020/07/31 Python
python+requests接口自动化框架的实现
2020/08/31 Python
python爬取微博评论的实例讲解
2021/01/15 Python
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
庆元旦活动总结
2014/07/09 职场文书
个人查摆剖析材料
2014/10/04 职场文书
护士节慰问信
2015/02/15 职场文书
保送生自荐信范文
2015/03/26 职场文书
组织委员竞选稿
2015/11/21 职场文书
Python实现数据的序列化操作详解
2022/07/07 Python