使用 Laravel Snooze 自动化未来的通知和提醒
发布于 作者: Paul Redmond
Laravel Snooze 是 Thomas Kane 开发的一个包,它简化了在 Laravel 中自动执行未来通知和提醒的过程。
该包的 README 文件中包含了该包的一些典型用例。
- 提醒系统(约会前 1 周、1 天、1 小时等)
- 后续调查(购买后 2 天)
- 入职电子邮件滴灌(注册后发送欢迎邮件,3 天后发送其他提示,7 天后发送升级优惠)
- 短期定期报告(在接下来的 4 周内每周发送)
Snooze 为您的模型提供了一个名为 SnoozeNotifiable
的特性,该特性添加了一个 notifyAt()
方法。
use Thomasjohnkane\Snooze\Traits\SnoozeNotifiable; class User extends Model { use SnoozeNotifiable; // …} // Schedule a birthday notification$user->notifyAt(new BirthdayNotification, Carbon::parse($user->birthday)); // Schedule for a week from now$user->notifyAt(new NextWeekNotification, Carbon::now()->addDays(7)); // Schedule for new years eve$user->notifyAt(new NewYearNotification, Carbon::parse('last day of this year'));
您还可以使用 ScheduledNotification::create()
方法发送匿名通知。
$target = (new AnonymousNotifiable) ->route('sms', '56546456566'); ScheduledNotification::create( $target, // Target new ScheduledNotificationExample($order), // Notification Carbon::now()->addDay() // Send At);
如果您有一些应该阻止通知发送的逻辑,您可以在通知类中定义逻辑。
public function shouldinterrupt($notifiable) { return $this->invoice->is_paid;}
有关更详细的信息,请查看 Thomas Kane 的详细文章 使用 Snooze 调度 Laravel 通知。
该包的选项和代码 API 为将来发送通知提供了绝佳的体验,因此请务必通读所有文档。
您可以在 GitHub 上了解更多关于该包的信息,获取完整的安装说明并查看源代码:thomasjohnkane/snooze。