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下载CSS文件中的图片的代码
Sep 24 PHP
php生成二维码时出现中文乱码的解决方法
Dec 18 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
Mar 03 PHP
php筛选不存在的图片资源
Apr 28 PHP
php实现图片上传并进行替换操作
Mar 15 PHP
php简单解析mysqli查询结果的方法(2种方法)
Jun 29 PHP
PHP模糊查询的实现方法(推荐)
Sep 06 PHP
php利用gd库为图片添加水印
Nov 09 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
Jun 10 PHP
php + ajax 实现的写入数据库操作简单示例
May 16 PHP
浅谈PHP中的那些魔术常量
Dec 02 PHP
浅谈PHP7中的一些小技巧
May 29 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开发过程中关于继承的使用方法分享
2011/06/17 PHP
7个超级实用的PHP代码片段
2011/07/11 PHP
PHPUnit安装及使用示例
2014/10/29 PHP
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
php 类中的常量、静态属性、非静态属性的区别
2017/04/09 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
jQuery 表单验证扩展(三)
2010/10/20 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
javascript简单实现命名空间效果
2014/03/06 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
浅谈es6中export和export default的作用及区别
2018/02/07 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
HTML+JavaScript实现扫雷小游戏
2019/09/30 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
Python中的True,False条件判断实例分析
2015/01/12 Python
代码讲解Python对Windows服务进行监控
2018/02/11 Python
Tesserocr库的正确安装方式
2018/10/19 Python
OpenCV图像颜色反转算法详解
2019/05/13 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
《胡杨》教学反思
2014/02/16 职场文书
献爱心活动总结
2014/05/07 职场文书
三好学生个人先进事迹材料
2014/05/17 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
商务经理岗位职责
2014/07/30 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
大学生志愿者心得体会
2016/01/15 职场文书
python数字图像处理:图像简单滤波
2022/06/28 Python
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript