[扩展推荐] Laravel snooze 发送定时消息提醒(两天后,一小时后等)

Laravel

Laravel Snooze 是由 Thomas Kane 所写的扩展包, 它简化了 Laravel 中的自动定时消息通知和提醒。

这个扩展包的自述文件有一些典型用例:

  • 提醒系统(应用前1周,应用前1天,应用前1小时等)
  • 跟踪调查(购买后2天)
  • 登机电子邮件 Drips (注册后欢迎电子邮件,3天后额外提示,7天后向上销售报价)
  • 短期定期报告(在接下来的4周内每周发送)

Snooze 为模型提供了一个名为snoozentifiable的 Trait,它包含了一个  notifyAt()方法:

use Thomasjohnkane\Snooze\Traits\SnoozeNotifiable;

class User extends Model {
    use SnoozeNotifiable;

    // …
}

// 制定一个生日通知
$user->notifyAt(new BirthdayNotification, Carbon::parse($user->birthday));

// 制定从现在开始一周后通知
$user->notifyAt(new NextWeekNotification, Carbon::now()->addDays(7));

// 制定一年最后一天通知
$user->notifyAt(new NewYearNotification, Carbon::parse('last day of this year'));

你甚至可以使用ScheduledNotification::create()方法发送匿名通知:

$target = (new AnonymousNotifiable)
    ->route('mail', 'hello@example.com')
    ->route('sms', '56546456566');

ScheduledNotification::create(
     $target, // 目标
     new ScheduledNotificationExample($order), // 通知消息
     Carbon::now()->addDay() // 发送时间
);

如果你有一些需要阻止消息通知发送的逻辑, 可以把逻辑定义在消息通知类:

public function shouldinterrupt($notifiable) {
    return $this->invoice->is_paid;
}

想了解更多详细信息,请查看 Thomas Kane 的详细文章使用 Snooze 定制 Laravel 消息通知

这个扩展包的选项和代码 API 为定时发送通知提供了愉快的体验,所以一定要通读所有的文档。

你可以在GitHub上的thomasjohnkane/snooze了解更多这个扩展包的信息, 获取全面的安装说明, 以及查看源代码。

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/automate-future...

译文地址:https://learnku.com/laravel/t/40887

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!