dynamikaweb/yii2-factory-component

yii2 动态可配置构造函数

安装次数: 653

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

类型:yii2-extension

0.1 2021-05-26 16:57 UTC

This package is auto-updated.

Last update: 2024-09-09 02:29:07 UTC


README

php version pkg version license quality build

安装

安装此扩展的首选方式是通过 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,
            ];
        }),
    ]
];

dynamika soluções web 此项目遵循 BSD-3-Clause 许可。