我是ZF2的新手,我不明白ZF2應用程序的配置。zf2模塊/全局配置
例如,翻譯在模塊的配置中進行配置。如果使用不同來源的模塊,這似乎是一個好方法。但是,我必須爲每個模塊翻譯相同的內容 - 這不是一種有效的方法。 郵件運輸也一樣。通常我想以同樣的方式發送我的Web應用程序的所有郵件(Sendmail或Smtp)。
那麼是否有解決方案將此配置從模塊的配置移動到全局配置?特別是對於使用第三方模塊?
問候 Bytecounter
我是ZF2的新手,我不明白ZF2應用程序的配置。zf2模塊/全局配置
例如,翻譯在模塊的配置中進行配置。如果使用不同來源的模塊,這似乎是一個好方法。但是,我必須爲每個模塊翻譯相同的內容 - 這不是一種有效的方法。 郵件運輸也一樣。通常我想以同樣的方式發送我的Web應用程序的所有郵件(Sendmail或Smtp)。
那麼是否有解決方案將此配置從模塊的配置移動到全局配置?特別是對於使用第三方模塊?
問候 Bytecounter
只是別名服務:
return [
'service_manager' => [
'aliases' => [
'PhlyContactMailTransport' => 'MailTransport',
],
'factories' => [
'MailTransport' => function (ServiceManager $serviceManager) {
// create your transport
return $transport;
},
],
],
];
僅供參考,請參閱
感謝很多!這是我搜索的內容。 – bytecounter
我有電子郵件全局設置的文件夾config/autoload/mail.global.php
喜歡這個
return [
'service_manager' => [
'factories' => [
'MailTransport' => function ($sm) {
$transport = new \Zend\Mail\Transport\File();
$options = new \Zend\Mail\Transport\FileOptions([
'path' => './data/mail',
'callback' => function (\Zend\Mail\Transport\File $transport) {
return 'Message_' . date('d_m_Y H_i') . '__' . mt_rand() . '.eml';
},
]);
$transport->setOptions($options);
return $transport;
}
]
]
];
中並調用它的任何地方$this->getServiceManager()->get('MailTransport');
好的,但這不適用於使用自己的工廠和配置密鑰的第三方模塊,所以我認爲,這些模塊不是100%符合ZF2。 – bytecounter
所有CONFIGS在一個自動合併,所以沒有必要從一個配置文件移到配置到另一個。你遇到什麼具體的部分? –
我想將Zend \ Mail \ Transport \ Sendmail設置爲全局默認郵件tranpsorter。但是 - 例如,查看第三方模塊「phly/PhlyContact」 - 它配置了它自己的密鑰'$ config = $ config ['phly_contact'] ['mail_transport'];這是一個好主意,但不適合很多模塊的舒適配置 – bytecounter