Правильный способ доступа к компонентам Yii2 в ваших модулях?
Я создал и настроил модуль fooModule. Мне нужно создать компонент внутри модуля.
Это моя конфигурация для моего модуля в main.в PHP
'modules'=>array(
'fooModule'=>array(
'class' => 'appmodulesfooModuleModule',
'components'=>array(
'testComponent'=>array(
'class'=>'appmodulesfooModulecomponentstestComponent',
),
),
),
),
в модуле foomodule папки я создал компоненты папки с файлом testComponent.в PHP
TestComponet.php имеет тест класса, который расширяет yiibaseComponent. Смотрите ниже
namespace appmodulesfooModulecomponent;
class test extends yiibaseComponent {
public function __construct() {
private $bar;
}
public function exampleFunction() {
echo 'am alive, come and look for me please!!';
}
}
Как получить доступ к тестовому классу в контроллере fooModule ?
2 ответов
использовать Yii::$app->getModule('fooModule')->testComponent->exampleFunction();
для компонента модуля доступа.
самый элегантный способ доступа к компоненту модуля из контроллера модуля без идентификатора модуля hardcoding выглядит следующим образом:
$this->module->testComponent->exampleFunction();