Мне необходимо получить в его конструкторе, параметры которые пользователь прописывает в конфигах, в компоненте, то есть которые в самом объекте доступны как $this->...
В DIContainer есть метод, который занимается созданием объектов:
Код: Выделить всё
protected function build($class, $params, $config)
{
/* @var $reflection ReflectionClass */
list ($reflection, $dependencies) = $this->getDependencies($class);
foreach ($params as $index => $param) {
$dependencies[$index] = $param;
}
if (!empty($dependencies) && is_a($class, 'yii\base\Object', true)) {
// set $config as the last parameter (existing one will be overwritten)
$dependencies[count($dependencies) - 1] = $config;
$dependencies = $this->resolveDependencies($dependencies, $reflection);
return $reflection->newInstanceArgs($dependencies);
} else {
$dependencies = $this->resolveDependencies($dependencies, $reflection);
$object = $reflection->newInstanceArgs($dependencies);
foreach ($config as $name => $value) {
$object->$name = $value;
}
return $object;
}
}
1) Почему используется только для класса, который был унаследован от Object?
Код: Выделить всё
$dependencies[count($dependencies) - 1] = $config;
Код: Выделить всё
Yii::$app->components->myComponent->component_variable