2017-09-26 3 views
1

J'utilise le Amazon sdk pour php pour envoyer des emails via le Simple Email Service tout cela en utilisant Lumen Framework. J'utilise la classe client du sdk à la place des classes mailables de Laravel car j'ai besoin d'ajouter des métadonnées à mes mails le problème survient quand j'essaye de pousser les emails dans une file d'attente parce que le SesClient de l'AWS sdk interdit la sérialisation et Laravel/Lumen utilise cette fonction pour créer la file d'attenteEnvoyer à une file d'attente Laravel une instance de SesClient d'AWS sdk pour php

J'ai essayé d'envelopper la classe mais cela n'a pas fonctionné aussi j'ai trouvé un paquet pour utiliser le SesClient mais aucun d'entre eux me permet d'ajouter des métadonnées

Je suis ouvert à toutes sortes de solutions, si vous avez besoin de plus d'informations faites le moi savoir et je vais répondre aux questions

Merci à l'avance

Répondre

0

TL; DR

Il n'y a pas moyen de faire parvenir

Explication

La réponse longue est que vous devez changer l'approche du problème

Étant donné que la classe AWS Client déclenche une exception sur la méthode magique __sleep, vous ne pouvez pas envoyer directement la classe à une file d'attente Laravel car une partie du processus d'envoi consiste à sérialiser la classe.

Vous étendez la classe et remplacez la méthode, mais cela vous apportera des problèmes à l'avenir en raison de rappels à l'intérieur de la classe AWS Client. Pour résoudre ce problème, vous devez extraire la classe de la classe Laravel Job, ce qui peut être fait en créant une classe pour envelopper votre processus et créer une instance du client AWS à l'intérieur de cette classe.