Настройки расширения YiiMail из бд

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
mum
Сообщения: 123
Зарегистрирован: 2011.12.15, 19:45
Контактная информация:

Настройки расширения YiiMail из бд

Сообщение mum »

Здравствуйте!
подключено расширение YiiMail, все настройки установлены в /config/mail.php
каким образом можно хранить настройки в бд, у меня они хранятся таким образом:

Код: Выделить всё

<?php
class Config extends CActiveRecord
{
    private static $list = null;
    
    public static function model($className=__CLASS__){
        return parent::model($className);
    }
    public function tableName() {
        return '{{config}}';
    }
    
    public function rules(){
        return [
            // Правила
        ];
    }
    
    public function attributeLabels(){
        return [
            // Аттрибуты
        ];
    }
    
    static function get($param, $default = null) {
        if(is_null(self::$list)) {
            self::$list = self::model()->findByPk(1);
        }
        return array_key_exists($param, self::$list) ? $default : self::$list[$param];
    }
}
?>
Хотелось бы установить настройки примерно так

Код: Выделить всё

'mail' => array(
                'class' => 'ext.yii-mail.YiiMail',
                'transportType'=>'smtp',
                'transportOptions'=>array(
                        'host'=>Config::get('MAIL_HOST'),
                        'username'=>Config::get('MAIL_USERNAME'),
                        'password'=>Config::get('MAIL_PASSWORD'),
                        'port'=>Config::get('MAIL_PORT'),                       
                ),
                'viewPath' => 'application.views.mail',             
),
Можно установить настройки вне config/main.php?
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Настройки расширения YiiMail из бд

Сообщение SiZE »

Наследуй класс YiiMail и при инициализации компонента, задай необходимую конфигурацию
Аватара пользователя
mum
Сообщения: 123
Зарегистрирован: 2011.12.15, 19:45
Контактная информация:

Re: Настройки расширения YiiMail из бд

Сообщение mum »

Решил вопрос так, создал файл app\protected\components\WebApplication.php
В нем

Код: Выделить всё

<?php
class WebApplication extends CWebApplication {
    public function init() {
        parent::init();
        Yii::app()->mail->transportOptions['host'] = Config::get('MAIL_HOST');
        Yii::app()->mail->transportOptions['username'] = Config::get('MAIL_USERNAME');
        Yii::app()->mail->transportOptions['password'] = Config::get('MAIL_PASSWORD');
        Yii::app()->mail->transportOptions['port'] = Config::get('MAIL_PORT');
    }
}
в app\index.php

Код: Выделить всё

...
$yii=dirname(__FILE__).'/../framework/yii.php';
$config=dirname(__FILE__).'/protected/config/main.php';


require_once($yii);
require_once(dirname(__FILE__) . '/protected/components/WebApplication.php');
Yii::createApplication('WebApplication', $config)->run();

ну и в самом конфиге app\protected\config\main.php

Код: Выделить всё

...
'mail' => array(
            'class' => 'ext.yii-mail.YiiMail',
            'transportType'=>'smtp',
            'viewPath' => 'application.views.mail'
),
...
Ответить