لتبسيط إرسال إشعارات بريد إلكتروني متعددة بعد أحداث مختلفة (مثل إنشاء المستخدم، وإعادة تعيين كلمة المرور، وما إلى ذلك)، يمكنك اتخاذ بضع خطوات لـ مركزية الإشعارات والتعامل مع المهام. سيجعل هذا الأسلوب عملك أسهل وأكثر قابلية للتطوير دون الحاجة إلى إنشاء وظيفة منفصلة أو إشعار لكل حدث.
بدلاً من إنشاء وظائف منفصلة لكل إشعار، يمكنك إنشاء وظيفة واحدة قابلة لإعادة الاستخدام تأخذ الإشعار والمستخدم كمعلمات. بهذه الطريقة، يمكن استخدام نفس الوظيفة للتعامل مع الإشعارات المختلفة.
namespace App\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Illuminate\Notifications\Notification; use App\Models\User; class SendEmailNotificationJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; public $user; public $notification; /** * Create a new job instance. * * @param User $user * @param Notification $notification * @return void */ public function __construct(User $user, Notification $notification) { $this->user = $user; $this->notification = $notification; } /** * Execute the job. * * @return void */ public function handle() { // Send the notification $this->user->notify($this->notification); } }
باستخدام هذه المهمة المعممة، يمكنك إرسال أنواع مختلفة من إشعارات البريد الإلكتروني باستخدام نفس الوظيفة:
use App\Jobs\SendEmailNotificationJob; use App\Notifications\UserWelcomeNotification; use App\Models\User; $user = User::find(1); // Example user // Dispatch a welcome email notification SendEmailNotificationJob::dispatch($user, new UserWelcomeNotification()); // Dispatch a password reset notification SendEmailNotificationJob::dispatch($user, new PasswordResetNotification());
بدلاً من إرسال المهام يدويًا بعد كل حدث، تسمح لك بنية استماع الأحداث في Laravel بتشغيل الإشعارات والمهام تلقائيًا بناءً على أحداث محددة (مثل إنشاء المستخدم).
الخطوة 1: تحديد الأحداث:
php artisan make:event UserCreatedمثال للحدث الذي أنشأه المستخدم:
php artisan make:event UserCreatedالخطوة 2: إنشاء المستمعين:
php artisan make:event UserCreatedمثال المستمع:
php artisan make:event UserCreatedالخطوة 3: إطلاق الحدث عند إنشاء المستخدم:
php artisan make:event UserCreatedيسمح لك هذا الأسلوب بفصل منطق التعامل مع الإشعارات عن منطق عملك، مما يجعل النظام أكثر قابلية للتطوير.
3.
خدمة الإشعارات التي تتعامل مع جميع إشعارات المستخدم بطريقة مركزية.
مثال لخدمة الإخطار:php artisan make:event UserCreatedمثال للاستخدام:
php artisan make:event UserCreatedخاتمة:
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3