2017-09-26 9 views
1

phpのAmazon sdkを使用して、Lumen Frameworkを使用してSimple Email Service経由で電子メールを送信しています。Laravelに送るAWS sdkからPHPのインスタンスをキューに入れます

私は電子メールにいくつかのメタデータを追加する必要があるため、Laravelのmailablesクラスの代わりにsdkのクライアントクラスを使用しています。メールをキューにプッシュしようとすると、AWSのSesClient sdkはシリアライゼーションを禁止し、Laravel/Lumenはこの関数を使用してキューを作成します

クラスをラップしようとしましたが、うまくいかなかったため、SesClientを使用するパッケージが見つかりましたが、メタデータを追加できません。

さらに詳しい情報が必要な場合は、すべての種類のソリューションに対応しています。質問にお答えします。

事前にの

おかげ

答えて

0

TL; DR

が長い答えは、あなたが問題

へのアプローチを変更する必要がある。この

説明

を達成行う方法はありません

AWSクライアントクラスは魔法のメソッド__sleepで例外を発生させるため、クラスをLaravelキューに直接送信することはできません。これは、送信するプロセスの一部がクラスを直列化するためです。

クラスを拡張してメソッドを上書きしますが、これにより、AWS Clientクラスのコールバックのために将来問題が発生します。

あなたはLaravelジョブクラスのうち、クラスを抽出する必要があり、これを解決するためには、これはあなたのプロセスをラップするクラスを作成行われ、このクラスの内部でAWSクライアントのインスタンスを作成することができます

関連する問題