Ausnahme: Serialisierung von „Closure“ ist nicht zulässig
Beim Ausführen von Tests, die die _initMailer()-Methode verwenden, die Zend einrichtet initMailer für die Anwendung ist die folgende Ausnahme aufgetreten:
Exception: Serialization of 'Closure' is not allowed
Die Ausnahme ergibt sich aus der anonymen Funktion (Abschluss) innerhalb der Methode:
$callback = function () { return 'ZendMail_' . microtime(true) .'.tmp'; };
Anonyme Funktionen können nicht serialisiert werden, was führt zur Ausnahme.
Lösung 1: Ersetzen Sie den Abschluss durch eine reguläre Funktion
Ersetzen Sie die anonyme Funktion durch eine reguläre Funktion:
function emailCallback() { return 'ZendMail_' . microtime(true) . '.tmp'; } $callback = "emailCallback" ;
Lösung 2: Indirekter Methodenaufruf mithilfe einer Array-Variable
Alternativ können Sie eine Array-Variable verwenden, um die Methode indirekt aufzurufen:
$callback = array($this, "aMethodInYourClass");
Dadurch können Sie eine Methode angeben aus der Klasseninstanz ohne Serialisierungsprobleme.
Das obige ist der detaillierte Inhalt vonWie löst man die Ausnahme „Serialisierung von „Schließung ist nicht zulässig'' in Zend-Mailer-Tests?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!