Laravel Snooze 项目教程
1. 项目介绍
Laravel Snooze 是一个用于简化 Laravel 应用程序中未来通知和提醒自动化的包。它允许开发者轻松地安排未来的通知,例如生日祝福、预约提醒、跟进调查等。Snooze 通过提供一个 notifyAt
方法,使得在特定时间发送通知变得非常简单。
2. 项目快速启动
安装
首先,通过 Composer 安装 Snooze 包:
composer require thomasjohnkane/snooze
接下来,运行迁移命令以创建必要的数据库表:
php artisan migrate
发布配置文件:
php artisan vendor:publish --provider="Thomasjohnkane\Snooze\ServiceProvider" --tag="config"
使用
使用模型特性
在你的模型中使用 SnoozeNotifiable
特性来安排通知:
use Thomasjohnkane\Snooze\Traits\SnoozeNotifiable;
use Illuminate\Notifications\Notifiable;
class User extends Model
{
use Notifiable, 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
助手
你也可以使用 ScheduledNotification::create
方法来安排通知:
ScheduledNotification::create(
Auth::user(), // 目标
new ScheduledNotificationExample($order), // 通知
Carbon::now()->addHour() // 发送时间
);
配置
确保 schedule:run
命令正在运行,以便自动发送通知。你可以在 config/snooze.php
文件中配置发送频率和其他选项。
3. 应用案例和最佳实践
提醒系统
一个常见的用例是创建一个提醒系统,例如在预约前一周、一天和一小时发送提醒:
$user->notifyAt(new AppointmentReminder, Carbon::parse($appointmentDate)->subWeek());
$user->notifyAt(new AppointmentReminder, Carbon::parse($appointmentDate)->subDay());
$user->notifyAt(new AppointmentReminder, Carbon::parse($appointmentDate)->subHour());
跟进调查
在购买后的两天发送跟进调查:
$user->notifyAt(new FollowUpSurvey, Carbon::now()->addDays(2));
生日祝福
在用户的生日当天发送生日祝福:
$user->notifyAt(new BirthdayNotification, Carbon::parse($user->birthday));
4. 典型生态项目
Laravel Horizon
Laravel Horizon 是一个用于管理 Laravel Redis 队列的仪表板和代码驱动程序。它可以与 Snooze 结合使用,以监控和管理未来的通知任务。
Laravel Telescope
Laravel Telescope 是一个优雅的调试助手,适用于 Laravel 应用程序。它可以与 Snooze 结合使用,以监控和调试通知的安排和发送过程。
Laravel Nova
Laravel Nova 是一个强大的管理面板,适用于 Laravel 应用程序。它可以与 Snooze 结合使用,以可视化和管理未来的通知任务。
通过这些生态项目的结合,可以进一步提升 Snooze 的功能和可管理性,使得未来的通知和提醒系统更加强大和灵活。