`
dcj3sjt126com
  • 浏览: 1871360 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Yii全局函数使用

    博客分类:
  • YII
yii 
阅读更多

由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。
例如,Yii::app()->user;Yii::app()->params['name'];等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。(原文地址)

我们可以保存在globals.php在protected目录下。然后,在入口脚本index.php的,我们包括在开始文件require('path/to/globals.php'); require('path/to/yii.php');现在我们可以在应用的任何地方使用我们的全局函数,例如可以使用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) ;
}

 方法二:

建立一个类,把公用函数定义的静态函数,放在components里边,即可在其他地方通过类名::函数()来进行调用。 

 

本文转自http://www.9ihl.com/archives/category/yii,感谢作者分享。

分享到:
评论

相关推荐

    Yii全局函数用法示例

    本文实例讲述了Yii全局函数用法。分享给大家供大家参考,具体如下: 由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。 例如,Yii::app()->user;Yii::app()->...

    YII2框架自定义全局函数的实现方法小结

    通过这些方法,开发者可以在YII2框架中灵活地定义和使用自定义全局函数,为开发工作提供便利。同时,合理利用YII2框架提供的各种特性,可以进一步提高开发效率和程序性能。如果想要深入学习YII2框架以及PHP开发的更...

    Yii框架函数简单用法分析

    以上只是Yii框架函数使用的一小部分,实际上Yii提供了大量功能强大的组件,如MVC架构、缓存管理、数据库操作、表单处理、安全认证等。学习和掌握Yii的函数用法,能极大地提升PHP开发效率。对于想要深入学习Yii的...

    Yii2中添加全局函数的方法分析

    在Yii2框架中添加全局函数,推荐使用Composer自动加载的方式。这种方式不仅避免了修改入口文件带来的问题,而且利于项目的长期维护和扩展。只需在`composer.json`中添加一个路径,然后通过Composer管理全局函数,就...

    Yii框架快速入门

    通过全局函数`Yii::app()`,可以从框架中的任何位置访问当前的应用程序实例。 #### 四、扩展与定制 随着应用功能的增加和复杂性的提升,可能需要将应用程序进一步分割成多个子应用(子应用程序)。这不仅有助于...

    yiiframework官方最新版,包括源程序、api、文档

    它没有定义任何全局函数或变量。而且,它定义的类层次结构允许最大的可重用性和定制。  16、友好的使用第三方代码:Yii精心设计让它第三方代码非常好的工作。例如,你可以在你的Yii应用程序中使用PEAR或Zend ...

    Yii框架学习笔记

    在布局方面,Yii支持布局文件(Layout),如`colum1.php`,用于定义全局的页面结构。通过`render()`方法,视图渲染会包含布局文件,而`renderPartial()`方法则只渲染视图本身,不包含布局。 综上所述,Yii框架凭借...

    Yii框架执行流程及部分源码分析

    配置文件一般位于`protected/config/main.php`,用于设置应用的全局参数,如数据库连接、组件配置等。 2. **入口文件`index.php`流程** 这是应用的起始点,主要任务是加载Yii框架的引导文件,初始化环境,并实例...

    Yii2框架的SweetAlert小部件_PHP_下载.zip

    - **其他特性**: 如自定义背景颜色、使用HTML内容、设置全局默认选项等。 5. **优化和扩展** 除了基本的用法,你还可以根据需求扩展这个小部件,比如添加更多预定义的提示类型,或者封装一些常用的操作,比如删除...

    Yii_PHP_框架分析

    Yii 使用 PHP5 的 SPL(Standard PHP Library)中的 `spl_autoload_register()` 函数来实现类的自动加载。在 `YiiBase.php` 文件中,`YiiBase::autoload()` 静态方法被注册为自动加载处理器。当尝试实例化一个类或...

    Yii_Cookbook

    - **实现方式**:使用jQuery或Yii内置函数触发加载动画效果。 ##### 14. 为ActiveRecord添加命名范围 - **知识点**:了解如何为ActiveRecord模型增加命名范围。 - **实现方式**:通过重写模型类,添加自定义的...

    yii框架下一个很好用的cms

    11. **components**目录:自定义组件存放处,可以是全局的服务、行为或助手函数,提高代码复用性。 在实际开发中,Yii CMS还可能包含其他组件,如用户认证(User Authentication)、权限控制(Access Control)、...

    Yii框架应用组件用法实例分析

    在Yii框架中,所有的应用组件都被注册在一个全局的服务定位器中,通常使用\Yii::$app来访问。每个组件都拥有一个唯一的ID,这个ID用于区分不同的组件。例如,\Yii::$app->db用于访问数据库组件,\Yii::$app->cache...

    Yii Framework v1.1.10类参考中文手册(CHM版)

    - **页面缓存**:可全局缓存整个页面,或者根据路由、动作进行局部缓存。 4. **安全**: - **验证**:Yii提供了一系列内置的验证规则,用于表单数据的验证。 - **权限控制**:基于RBAC(Role-Based Access ...

    yii2-deep-instantiate

    该软件包提供了Yii 2依赖注入器容器,该容器能够自动解决嵌套的构造函数接口类型的依赖项。 要求 Yii 2.0.39.3+ PHP 7.0以上 安装 composer require bizley/deep-instantiate:^1.0 用法 直接-只需调用new \Bizley\...

    Yii入门教程之目录结构、入口文件及路由设置

    在这个文件中,我们通常会看到Yii::createWebApplication()函数的调用,这个函数创建了一个Web应用程序实例,并加载了配置文件,使得全局的Yii对象可以通过Yii::app()访问。配置文件中的数据会被绑定到这个全局对象...

Global site tag (gtag.js) - Google Analytics