我已经创建并配置了一个模块fooModule。我需要在模块内部创建一个组件。
这是我在main.php中的模块配置
'modules'=>array(
'fooModule'=>array(
'class' => 'app\modules\fooModule\Module',
'components'=>array(
'testComponent'=>array(
'class'=>'app\modules\fooModule\components\testComponent',
),
),
),
),
在文件夹模块fooModule中,我创建了一个文件夹组件,其中包含一个文件testComponent.php
TestComponet.php有一个扩展\ yii \ base \ Component的类测试。见下文
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!!';
}
}
如何访问fooModule Controller中的测试类?
答案 0 :(得分:10)
使用Yii::$app->getModule('fooModule')->testComponent->exampleFunction();
访问模块组件。
答案 1 :(得分:3)
从模块控制器访问模块组件而不使用硬编码模块的ID的最优雅方法如下:
$this->module->testComponent->exampleFunction();
答案 2 :(得分:0)
这看起来很优雅
Module::getInstance()->testComponent