组件
组件是 Yii 应用的主要基石。是 yii\base\Component 类或其子类的实例。 具有非常强大的功能, 我们的操作大部分都是通过内置组件实现的
组件默认为写入代码中的配置项, 在程序运行中, 当我们需要去控制组件时, 就需要动态的管理组件了, Yii提供了几种方法来设置组件
下面假设我们需要动态修改mailer组件, 从数据库中取出配置参数, 动态的去更新组件
默认在文件中配置是不支持取数据库的
1.获取组件
使用getComponents
方法,该方法返回所有的组件信息, 该方法有个$returnDefinitions
参数, 默认等于true
, 返回所有组件的定义, 其实就是配置数组
如果将该参数设置为false
, 则返回所有已有实例的组件
我们要重新配置组件的话, 则需要取组件的配置数组
$mailerParams = Yii::$app->getComponents()['mailer'];
print_r($mailerParams);
// 此处配置我已经在 common/config/main-local.php中配置过了, 默认没有这么多选项
/**
Array
(
[class] => yii\swiftmailer\Mailer
[viewPath] => @common/mail
[useFileTransport] =>
[transport] => Array
(
[class] => Swift_SmtpTransport
[host] => smtp.qq.com
[username] => shantongxu@qq.com
[password] =>
[port] => 465
[encryption] => ssl
)
[messageConfig] => Array
(
[charset] => UTF-8
[from] => Array
(
[notifications@xstnet.com] => 徐善通的博客
)
)
)
**/