当我们创建一个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. rocketmq学习

    官网地址 安装name server和broker git clone https://github.com/apache/incubator-rocketmq.git cd incubator-ro ...

  2. mysql 1093 - You can't specify target table 'xx表' for update in FROM clause

    为了修复节点表某批次数据的用户数据,做出了以下尝试: , name , , )); 执行:[Err] 1093 - You can't specify target table 'zs_work_ap ...

  3. MyBatis Generator XML 配置

    使用反向生成器可以生成数据库表对应的实体类和mapper映射文件: 以下是具体介绍相应xml文件的配置: 附上一张配置的模板: <?xml version="1.0" enc ...

  4. python实战——网络爬虫

    学习网络爬虫的目的: 1,可以私人定制一个搜索引擎,可以深层次的了解搜索引擎的工作原理. 2,大数据时代,要进行数据分析,首先要有数据源,学习爬虫,可以让我们获取更多的数据. 3,从业人员可以可好的利 ...

  5. 【9】JMicro微服务-发布订阅消息服务

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 1. JMicro消息服务目前实现特性 a. JMicro只支持发布订阅消息服务,不支持队列式消息服务: b. 不支持消息持 ...

  6. hive算法报错..

    hive普通语句查询报错.. 查到以下设定项,,附加在语句前执行成功.. 但是有可能没有真正的执行.. 试到最后使用标红的三行附加在语法前执行成功 set hive.execution.engine= ...

  7. Netty核心概念(5)之Channel

    1.前言 上一节讲了Netty的第一个关键启动类,启动类所做的一些操作,和服务端的channel固定的handler执行过程,谈到了不管是connect还是bind方法最终都是调用了channel的相 ...

  8. php输出大段代码(含变量和方法)

    echo<<<EOF <html> <body> <formname="MainForm"method="post&quo ...

  9. 【优化】bigpipe技术

    一.什么是bigpipe Bigpipe是Facebook工程师提出了一种新的页面加载技术. BigPipe是一个重新设计的基础动态网页服务体系.大体思路是,分解网页成叫做Pagelets的小块,然后 ...

  10. [C语言]类型限定词const解析

    作为C90增加的一个受限类型关键字,const赋予了它修饰的变量一个新属性——不变性,如果一个变量声明中带有关键字const,则无法通过赋值.增减运算来修改该变量的值. 一.指针与const结合 co ...