异常:不允许序列化“闭包”
2022-08-30 09:21:29
所以我不确定我必须向你们展示什么,如果你需要更多的代码,请不要犹豫,问:
因此,此方法将在我们的应用程序中为 Zend 设置 initMailer:
protected function _initMailer()
{
if ('testing' !== APPLICATION_ENV) {
$this->bootstrap('Config');
$options = $this->getOptions();
$mail = new Zend_Application_Resource_Mail($options['mail']);
}elseif ('testing' === APPLICATION_ENV) {
//change the mail transport only if dev or test
if (APPLICATION_ENV <> 'production') {
$callback = function()
{
return 'ZendMail_' . microtime(true) .'.tmp';
};
$mail = new Zend_Mail_Transport_File(
array('path' => '/tmp/mail/',
'callback'=>$callback
)
);
Zend_Mail::setDefaultTransport($mail);
}
}
return $mail;
}
你可以看到里面的闭包。当我运行任何使用此代码的测试时,我得到:
Exception: Serialization of 'Closure' is not allowed
因此,与此“闭包”相关的所有测试都失败了。所以我在这里问你们我应该怎么做。
为了澄清上述内容,我们所做的就是说我们发送的任何电子邮件都希望将有关该电子邮件的信息存储在文件中/tmp/mail/目录中的文件夹中。