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 相关文章推荐
新浪新闻小偷
Oct 09 PHP
PHP 操作文件的一些FAQ总结
Feb 12 PHP
window+nginx+php环境配置 附配置搭配说明
Dec 29 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
Mar 03 PHP
PHP中SESSION的注销与清除
Apr 16 PHP
php使用pdo连接sqlite3的配置示例
May 27 PHP
PHP中多线程的两个实现方法
Oct 14 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
Dec 24 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
PHP下 Mongodb 连接远程数据库的实例代码
Aug 30 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
Oct 11 PHP
实例讲解php将字符串输出到HTML
Jan 27 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
再说下636单管机
2021/03/02 无线电
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
php 信息采集程序代码
2009/03/17 PHP
编写安全 PHP应用程序的七个习惯深入分析
2013/06/08 PHP
一个PHP针对数字的加密解密类
2014/03/20 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
2017/06/13 Javascript
微信小程序 sha1 实现密码加密实例详解
2017/07/06 Javascript
JavaScript模板引擎原理与用法详解
2018/12/24 Javascript
Vue函数式组件的应用实例详解
2019/08/30 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
一步步解析Python斗牛游戏的概率
2016/02/12 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
python实现雨滴下落到地面效果
2018/06/21 Python
使用Python AIML搭建聊天机器人的方法示例
2018/07/09 Python
Python运维自动化之nginx配置文件对比操作示例
2018/08/29 Python
python并发和异步编程实例
2018/11/15 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
python 实现按对象传值
2019/12/26 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
python调用私有属性的方法总结
2020/07/24 Python
阿拉伯书店:Jamalon
2019/07/24 全球购物
安全检查管理制度
2014/02/02 职场文书
职代会闭幕词
2015/01/28 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
离婚协议书范本(2016最新版)
2016/03/18 职场文书
Python移位密码、仿射变换解密实例代码
2021/06/27 Python
springboot入门 之profile设置方式
2022/04/04 Java/Android
MYSQL如何查看操作日志详解
2022/05/30 MySQL