Heim > Backend-Entwicklung > PHP-Tutorial > Wie löst man die Ausnahme „Serialisierung von „Schließung ist nicht zulässig'' in Zend Mail-Unit-Tests?

Wie löst man die Ausnahme „Serialisierung von „Schließung ist nicht zulässig'' in Zend Mail-Unit-Tests?

Mary-Kate Olsen
Freigeben: 2024-10-24 03:04:29
Original
266 Leute haben es durchsucht

How to Resolve

Ausnahme: Serialisierung von „Closure“ ist nicht zulässig

Beim Ausführen von Tests, die Abschlussfunktionen in der _initMailer-Methode von Zend beinhalten, können Entwickler auf Folgendes stoßen: Folgende Ausnahme: Ausnahme: Serialisierung von „Closure“ ist nicht zulässig.

Dieser Fehler tritt auf, weil anonyme Funktionen aufgrund ihrer dynamischen Natur nicht serialisiert werden können. Im bereitgestellten Code ist der Abschluss innerhalb der _initMailer-Methode definiert:

$callback = function()
{
    return 'ZendMail_' . microtime(true) .'.tmp';
};
Nach dem Login kopieren

Lösung:

Es gibt zwei praktikable Lösungen für dieses Problem:

Lösung 1: Durch eine normale Funktion ersetzen

Konvertieren Sie den Abschluss in eine normale Funktion außerhalb der _initMailer-Methode:

function emailCallback() {
    return 'ZendMail_' . microtime(true) . '.tmp';
}
$callback = "emailCallback";
Nach dem Login kopieren

Lösung 2: Indirekt Methodenaufruf durch Array-Variable

Gemäß der Zend Mail File Transport-Dokumentation kann die Rückrufoption auch mithilfe einer Array-Variablen festgelegt werden:

$callback = array($this, "aMethodInYourClass");
Nach dem Login kopieren

Dieser Ansatz ermöglicht die Übergabe beliebiger Methode aus der aktuellen Klasse als Callback.

Das obige ist der detaillierte Inhalt vonWie löst man die Ausnahme „Serialisierung von „Schließung ist nicht zulässig'' in Zend Mail-Unit-Tests?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage