当我们创建一个module的时候,对应的path alias就已经创建。
比如我们定义了一个module: www

1
2
3
4
5
'modules'=>array(
    'www'=>array(
        'class'=>'applications.modules.www.WwwModule',
    ),
),

打印:
echo Yii::app()->getPathOfAlias(‘www’)
你会发现www别名已经指向我们的www模块了。

假定在我们的www模块下有如下目录:
www
–components
—-ApiBase.php
–extensions
–vendors
—-Curl.php

如何加载这里面的components或者其它第三方包呢?
如下:

1
2
3
4
5
6
7
8
9
'modules'=>array(
    'www'=>array(
        'class'=>'applications.modules.www.WwwModule',
        'components' => array(
             'api'=>array('class'=>'www.components.ApiBase'),
             'curl'=>array('class'=>'www.vendors.Curl'),
        ),
    ),
),

那么在controller里面该如何获取呢:
如下:

1
2
$api = $this->getModule()->api;
$curl = $this->getModule()->curl;

$this是当前的controller.

请注意: 我们这里没有使用Yii::app()->curl来获取component,因为我们是把component定义到modules里面了。
其它模块想要使用我们的扩展怎么办?

1
$curl = Yii::app()->getModule('www')->curl;

当然对于公共的扩展,不建议定义的单个module里面, 还是放到外面的components里面定义。 然后采用Yii::app()->curl 来获取即可

Yii 之components的更多相关文章

  1. yii 核心类classes.php详解(持续更新中...)

    classes.php在yii运行的时候将被自动加载,位于yii2文件夹底下. <?php /** * Yii core class map. * * This file is automati ...

  2. yii2 funson86\yii2-setting

    Yii2 Setting for other application, especially for Yii2 Adminlte Installation The preferred way to i ...

  3. Yii2.0 上使用 redis

    1. 通过composer进行安装,到项目根目录cmd运行 php composer.phar require --prefer-dist yiisoft/yii2-redis或者添加 "y ...

  4. yii components文件到底应该放些什么代码

    项目全局用的代码,比如项目所有controller和model的共通操作或者放一些第三方的组件.插件之类的项目全局用的代码

  5. shell 带签名请求,yii 处理带签名的请求

    处理请求 class TestController extends Controller { public function init() { if(!YII_ENV_DEV){ throw new ...

  6. YII 的源码分析(二)

    上一篇简单分析了一下yii的流程,从创建一个应用,到屏幕上输出结果.这一次我来一个稍复杂一点的,重点在输出上,不再是简单的一行"hello world",而是要经过view(视图) ...

  7. 最为简易的yii 教程(一)

    了解目录的框架结构 framework主要有 base          框架核心组件 caching        缓存组件 db                数据库组件 gii          ...

  8. 在yii框架中如何连接数据库mongodb

    在文件夹common/config/main_local.php中加入如下代码: <?php return [ 'components' => [ 'mongodb' => [ 'c ...

  9. yii模块下面的组件

    模块的定义就不写了,直接进入主题看目录和文件: application/modules/client/controllers/UserController.php <?php class Use ...

随机推荐

  1. Xshell多版本被曝存在后门,了解紧急响应修复预案

    近日,Xshell远程终端工具被爆出多个版本存在后门,无疑是安全圈的一个大新闻.恶意攻击者利用该后门可以收集到用户名密码等主机敏感信息,并将之传回攻击者的机器,导致服务器信息泄露,进一步可致使整个服务 ...

  2. Sublime Text shift+ctrl妙用(转载)

    1 :按住shift+ctrl然后按←或→可快速选中一行中的某一部分,相当于双击鼠标选中. 当你想在代码末尾加注释的话,这个方法很好用 输入文字->光标移到文字末尾->按住shift+ct ...

  3. Java 反射机制系列

    http://www.cnblogs.com/KingIceMou/category/1034898.html

  4. FlexMonkey实战

    文章来源:http://www.cnblogs.com/raol/p/flexmonkey.html 我的有道云笔记:http://note.youdao.com/share/?id=22b79669 ...

  5. windows7下部署tomcat

    需要准备的软件: 1.JDK 安装程序 2.Tomcat 安装程序 JDK安装步骤: 安装方式:使用安装程序进行安装.使用JDK文件夹,免安装,以下步骤使用的是文件夹免安装,只需配置环境变量 配置环境 ...

  6. Java之集合(七)Map

    转载请注明源出处:http://www.cnblogs.com/lighten/p/7327216.html 1.前言 按照顺序,本章本是要对Set的相关类进行介绍及讲解的.但是对于其实现有所了解的都 ...

  7. 安卓的SlidingMenu配置

    最近用到了界面的优化,使用SlidingMenu开源库比较方便,为了方便学习,我整理了一下配置过程. 1.准备资料. 首先下载这两个ActionBarSherlock和SlidingMenu,如图:

  8. excel将内容粘贴到筛选后的可见单元格

    默认情况下,筛选后excel表格进行复制粘贴,会贴到隐藏的表格. 可以添加两个辅助列来完成操作:1.在筛选前在表格右边添加"辅助1"列,在第二行输入1,按Ctrl+鼠标左键往下拉到 ...

  9. Linux运维中遇到的常见问题

    1.CentOS启动tomcat出现乱码的解决方案1.打开tomcat下的server.xml配置文件,在connect标签中添加编码属性:URIEncoding="UTF-8"2 ...

  10. php通过生成动态变量(变量名中还有变量)

    借鉴:http://blog.sina.com.cn/s/blog_7193eeac0100zwld.html 如果想for循环生成变量 如: $a1,$a2,$a3.... $name = &quo ...