dynamikaweb / yii2-factory-component
yii2 动态可配置构造函数
0.1
2021-05-26 16:57 UTC
Requires
- php: >=5.5.0
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-09-09 02:29:07 UTC
README
安装
安装此扩展的首选方式是通过 Composer。
运行以下命令之一
$ composer require dynamikaweb/yii2-factory-component "*"
或在您的 composer.json
文件的 require
部分添加以下内容
"dynamikaweb/yii2-factory-component": "*"
to the require
section of your composer.json
file.
如何使用
调用动态配置的组件
错误!
Yii::$app->components['mailer'];
正确!
Yii::$app->get('mailer');
在 PHP 7.4 或更高版本中设置
common/configs/main.php
<?php use dynamikaweb\fc\FactoryComponent as FC; use common\models\ConfigModel; return [ 'components' => [ // other components ... 'mailer' => FC::build('yii\swiftmailer\Mailer', fn() => [ 'viewPath' => '@common/mail', 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => ConfigModel::getInstance()->mail_host, 'username' => ConfigModel::getInstance()->mail_username, 'password' => ConfigModel::getInstance()->mail_password, 'port' => ConfigModel::getInstance()->mail_port, 'encryption' => ConfigModel::getInstance()->mail_encryption ], 'useFileTransport' => false, ]), ] ];
在较旧版本的 PHP 中设置
common/configs/main.php
<?php use dynamikaweb\fc\FactoryComponent as FC; use common\models\ConfigModel; return [ 'components' => [ // other components ... 'mailer' => FC::build('yii\swiftmailer\Mailer', function() { $cfg = ConfigModel::getInstance(); return [ 'viewPath' => '@common/mail', 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => $cfg->mail_host, 'username' => $cfg->mail_username, 'password' => $cfg->mail_password, 'port' => $cfg->mail_port, 'encryption' => $cfg->mail_encryption ], 'useFileTransport' => false, ]; }), ] ];
此项目遵循 BSD-3-Clause 许可。