Comment résoudre l'exception « La sérialisation de la fermeture n'est pas autorisée » dans les tests unitaires Zend Mail ?

Mary-Kate Olsen
Libérer: 2024-10-24 03:04:29
original
192 Les gens l'ont consulté

How to Resolve

Exception : la sérialisation de 'Closure' n'est pas autorisée

Lors de l'exécution de tests impliquant des fonctions de fermeture dans la méthode _initMailer de Zend, les développeurs peuvent rencontrer le exception suivante : Exception : la sérialisation de « Closure » ​​n'est pas autorisée.

Cette erreur survient car les fonctions anonymes ne peuvent pas être sérialisées en raison de leur nature dynamique. Dans le code fourni, la fermeture est définie dans la méthode _initMailer :

$callback = function()
{
    return 'ZendMail_' . microtime(true) .'.tmp';
};
Copier après la connexion

Solution :

Il existe deux solutions viables à ce problème :

Solution 1 : Remplacer par une fonction normale

Convertir la fermeture en fonction normale en dehors de la méthode _initMailer :

function emailCallback() {
    return 'ZendMail_' . microtime(true) . '.tmp';
}
$callback = "emailCallback";
Copier après la connexion

Solution 2 : Indirect Appel de méthode par variable de tableau

Selon la documentation Zend Mail File Transport, l'option de rappel peut également être définie à l'aide d'une variable de tableau :

$callback = array($this, "aMethodInYourClass");
Copier après la connexion

Cette approche permet de transmettre n'importe quel méthode de la classe actuelle comme rappel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!