Yii 之components

來源:互聯網
上載者:User

標籤:使用   io   ar   div   line   app   ad   table   

當我們建立一個module的時候,對應的path alias就已經建立。
比如我們定義了一個module: www

12345 ‘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或者其它第三方包呢?
如下:

123456789 ‘modules‘=>array(    ‘www‘=>array(        ‘class‘=>‘applications.modules.www.WwwModule‘,        ‘components‘ => array(             ‘api‘=>array(‘class‘=>‘www.components.ApiBase‘),             ‘curl‘=>array(‘class‘=>‘www.vendors.Curl‘),        ),    ),),

那麼在controller裡面該如何擷取呢:
如下:

12 $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 來擷取即可

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.