2016-01-12 16 views
7

Ho creato e configurato un modulo fooModule. Devo creare un componente all'interno del modulo.Modo corretto per accedere ai componenti Yii2 nei moduli?

Questa è la mia configurazione per il mio modulo in main.php

'modules'=>array(
    'fooModule'=>array(
     'class' => 'app\modules\fooModule\Module', 
     'components'=>array(
      'testComponent'=>array(
       'class'=>'app\modules\fooModule\components\testComponent', 
      ), 
     ), 
    ), 
), 

Nel fooModule modulo di cartella ho creato una cartella componenti con un file testComponent.php

TestComponet.php ha un compito in classe che estendono \ yii \ base \ Componente. Vedi sotto

namespace app\modules\fooModule\component; 

class test extends \yii\base\Component { 

     public function __construct() { 
       private $bar;  
     } 

     public function exampleFunction() { 
       echo 'am alive, come and look for me please!!';  
     } 

} 

Come faccio ad accedere classe di test in fooModule controller?

risposta

7

Utilizzare Yii::$app->getModule('fooModule')->testComponent->exampleFunction(); per il componente del modulo di accesso.

+1

Grazie per la tua risposta mi permetta di provare fuori – chapskev

2

Il modo più elegante per accedere componente modulo dal controller di modulo senza hardcoding ID del modulo è la seguente:

$this->module->testComponent->exampleFunction(); 
Problemi correlati