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

Mary-Kate Olsen
Libérer: 2024-10-24 02:36:02
original
389 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 utilisant la méthode _initMailer(), qui configure Zend initMailer pour l'application, l'exception suivante est rencontrée :

Exception: Serialization of 'Closure' is not allowed
Copier après la connexion

L'exception provient de la fonction anonyme (fermeture) au sein de la méthode :

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

Les fonctions anonymes ne peuvent pas être sérialisées, ce qui entraîne à l'exception.

Solution 1 : Remplacer la fermeture par une fonction régulière

Remplacer la fonction anonyme par une fonction régulière :

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

Solution 2 : Appel de méthode indirecte à l'aide d'une variable de tableau

Vous pouvez également utiliser une variable de tableau pour appeler indirectement la méthode :

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

Cela vous permet de spécifier une méthode à partir de l'instance de classe sans problèmes de sérialisation.

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!