2010-09-22 2 views
1

hi Я использую компонент swiftmailer в своем приложении и ищу способ иметь отдельную конфигурацию (возможно, в папке config?) Для swiftmailer, которая проверяет, какой режим отладки я использую и, следовательно, использует разные настройки?cakephp swiftmailer config

кейс 1: on производство режим использование простой smtp сервер без auth. case 2: в режиме отладки используйте настройки gmail или другие настройки, так как я разрабатываю локально

это возможно?

настройки кода случай 1:

$this->SwiftMailer->smtpHost = ''; 

настройки кода случай 2:

 $this->SwiftMailer->smtpType = ''; 
     $this->SwiftMailer->smtpHost = ''; 
     $this->SwiftMailer->smtpPort =; 
     $this->SwiftMailer->smtpUsername = ''; 
     $this->SwiftMailer->smtpPassword = ''; 

ответ

1

Я думаю, что самый быстрый способ будет:

<?php 
    Configure::load('swiftmailer'); 
    $this->SwiftMailer->smtpType = 
     Configure::read('SwiftMailer.'.Configure::read().'.smtpType'); 
    $this->SwiftMailer->smtpHost = 
     Configure::read('SwiftMailer.'.Configure::read().'.smtpHost'); 
    $this->SwiftMailer->smtpPort = 
     Configure::read('SwiftMailer.'.Configure::read().'.smtpPort'); 
    $this->SwiftMailer->smtpUsername = 
     Configure::read('SwiftMailer.'.Configure::read().'.smtpUsername'); 
    $this->SwiftMailer->smtpPassword = 
     Configure::read('SwiftMailer.'.Configure::read().'.smtpPassword'); 
?> 

Теперь, где поставить его на. Я бы предложил конструктор Controller, таким образом это красиво и аккуратно. Для значений, которые вы всегда можете использовать частный конфигурационный файл:

// /app/config/swiftmailer.php: 
<?php 
    $config['SwiftMailer'][0]['smtpType'] = 'value'; 
    $config['SwiftMailer'][0]['smtpHost'] = 'value'; 
    $config['SwiftMailer'][0]['smtpPort'] = 'value'; 
    $config['SwiftMailer'][0]['smtpUsername'] = 'value'; 
    $config['SwiftMailer'][0]['smtpPassword'] = 'value'; 

    $config['SwiftMailer'][1]['smtpType'] = 'value'; 
    $config['SwiftMailer'][1]['smtpHost'] = 'value'; 
    $config['SwiftMailer'][1]['smtpPort'] = 'value'; 
    $config['SwiftMailer'][1]['smtpUsername'] = 'value'; 
    $config['SwiftMailer'][1]['smtpPassword'] = 'value'; 

    $config['SwiftMailer'][2]['smtpType'] = 'value'; 
    $config['SwiftMailer'][2]['smtpHost'] = 'value'; 
    $config['SwiftMailer'][2]['smtpPort'] = 'value'; 
    $config['SwiftMailer'][2]['smtpUsername'] = 'value'; 
    $config['SwiftMailer'][2]['smtpPassword'] = 'value'; 
?> 

Вы можете найти более общий пример на Configuration Class v 1.2 и Configuration Class v 1.3.

Кажется, что у них одинаковый контент, поэтому он не изменился с 1.2 до 1.3.

Надеюсь, это поможет.

+0

супер! Ожидание: D – Mikelangelo

+0

Oky, завершил пример с более конкретным кодом и добавил ссылки на CookBook, если вы хотите продолжить исследование. Cheers –

+0

конструктором calsas вы имеете в виду «контроллер/компоненты/swiftmailer.php»? Я использую http://bakery.cakephp.org/articles/view/updated-swiftmailer-4-xx-component-with-attachments-and-plugins – Mikelangelo