`
stevecj
  • 浏览: 105918 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

YII全局函数使用

    博客分类:
  • PHP
阅读更多

由于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为前缀。

 

下面是代码包含最常用的一些快捷功能。
01 /**
02   * This is the shortcut to DIRECTORY_SEPARATOR
03   */
04 defined( 'DS' ) or define( 'DS' ,DIRECTORY_SEPARATOR);
05  
06 /**
07   * This is the shortcut to Yii::app()
08   */
09 function app()
10 {
11      return Yii::app();
12 }
13  
14 /**
15   * This is the shortcut to Yii::app()->clientScript
16   */
17 function cs()
18 {
19      // You could also call the client script instance via Yii::app()->clientScript
20      // But this is faster
21      return Yii::app()->getClientScript();
22 }
23  
24 /**
25   * This is the shortcut to Yii::app()->user.
26   */
27 function user()
28 {
29      return Yii::app()->getUser();
30 }
31  
32 /**
33   * This is the shortcut to Yii::app()->createUrl()
34   */
35 function url( $route , $params = array (), $ampersand = '&' )
36 {
37      return Yii::app()->createUrl( $route , $params , $ampersand );
38 }
39  
40 /**
41   * This is the shortcut to CHtml::encode
42   */
43 function h( $text )
44 {
45      return htmlspecialchars( $text ,ENT_QUOTES,Yii::app()->charset);
46 }
47  
48 /**
49   * This is the shortcut to CHtml::link()
50   */
51 function l( $text , $url = '#' , $htmlOptions = array ())
52 {
53      return CHtml::link( $text , $url , $htmlOptions );
54 }
55  
56 /**
57   * This is the shortcut to Yii::t() with default category = 'stay'
58   */
59 function t( $message , $category = 'stay' , $params = array (), $source =null, $language =null)
60 {
61      return Yii::t( $category , $message , $params , $source , $language );
62 }
63  
64 /**
65   * This is the shortcut to Yii::app()->request->baseUrl
66   * If the parameter is given, it will be returned and prefixed with the app baseUrl.
67   */
68 function bu( $url =null)
69 {
70      static $baseUrl ;
71      if ( $baseUrl ===null)
72          $baseUrl =Yii::app()->getRequest()->getBaseUrl();
73      return $url ===null ? $baseUrl : $baseUrl . '/' .ltrim( $url , '/' );
74 }
75  
76 /**
77   * Returns the named application parameter.
78   * This is the shortcut to Yii::app()->params[$name].
79   */
80 function param( $name )
81 {
82      return Yii::app()->params[ $name ];
83 }
84 /**
85   * A useful one that I use in development is the following
86   * which dumps the target with syntax highlighting on by default
87   */
88 function dump( $target )
89 {
90    return CVarDumper::dump( $target , 10, true) ;
91 }
分享到:
评论

相关推荐

    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管理全局函数,就...

    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