如何阅读电子邮件' config / app.php中定义的选项?

时间:2016-04-07 07:19:58

标签: php cakephp configuration cakephp-3.0

我尝试使用config/app.php阅读Configure::read('Email');中定义的电子邮件选项,但它会返回null。使用Configure::read(<options name>)可以很好地阅读其他选项。

我认为阅读Email选项会被某种方式阻止。如何使用Email阅读config/app.php中定义的配置中的Configure::read()选项?我可能需要以不同的方式阅读它们吗?

2 个答案:

答案 0 :(得分:3)

正在删除Comsumed配置

某些配置在某些时候被“消耗”,默认情况下,当前为CacheDatasourcesEmailTransportEmailLogSecurity.salt,请参阅您的应用config/bootstrap.php文件。

<强> https://github.com/cakephp/app/blob/3.2.4/config/bootstrap.php#L146-L151

使用密钥导致它们在被读取后被删除,因此在引导程序中的那一点之后将不再有Email个配置,因此在尝试阅读时您将收到null

从消费者

中检索配置

如果您想稍后访问此类配置,那么您应该通过使用它的类来访问它,在您的情况下是Email类,即通过

读取它
\Cake\Network\Email\Email::config() // (CakePHP < 3.1)

\Cake\Mailer\Email::config() // (CakePHP >= 3.1)

取决于您的CakePHP版本。

另见

答案 1 :(得分:1)

在CakePHP版本中&gt; 3.4你必须使用

\Cake\Mailer\Email::getConfigTransport('smtp');