@AlexRas

Как в Yii2 получить название компонента внутри?

В конфигурации так:

<?php

return [
	'components' => [
		'testComponent' => [
			'class' => 'common\components\TestComponent',
		],
	],
];

Как можно получить название компонента "testComponent"? Внутри класса компонента:

<?php

namespace common\components;

class TestComponent extends Component
{
    public function create()
    {
         $config = ArrayHelper::getValue(Yii::$app->components, '{Как тут вывести имя "testComponent"}', []);
         return Yii::createObject($config);
    }
}
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Если я Вас правильно понял, то в конфигурационном файле задайте имя компонента.
'components' => [
   'testComponent' => [
        'class' => 'app\components\TestComponent',
       'name' => 'testComponent'
   ]
]

В самом классе компонента создайте публичное свойство и обращайтесь к нему так
class TestComponent extends Component
{
      public $name;

    public function create()
    {
         $config = ArrayHelper::getValue(Yii::$app->components, Yii::$app->testComponent->name, []);
         return Yii::createObject($config);
    }

}

Можно получить полный путь к классу компонента через Yii::$app->testComponent->className()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы