codepotatoltd / digestif
A digest email for Laravel database notifications
0.2.0
2020-10-08 18:32 UTC
Requires
- php: >=7.4
- illuminate/bus: ^6.0 || ^7.0 || ^8.0
- illuminate/console: ^6.0 || ^7.0 || ^8.0
- illuminate/database: ^6.0 || ^7.0 || ^8.0
- illuminate/notifications: ^6.0 || ^7.0 || ^8.0
- illuminate/support: ^6.0 || ^7.0 || ^8.0
README
What is this?
Using the database driver for laravel notifications is great, but then you need a way to communicate to your users if they've not logged in for a while. With Digestif we'll handle the digest emails for you.
Installation instructions
- Install using
composer require codepotatoltd/digestif
- Ensure you have a notifications table in your database, otherwise run
php artisan notifications:table
and thenphp artisan migrate
- Publish Digestif's config, notification and database migration using
php artisan vendor:publish
and select the DigestifServiceProvider option. - Run
php artisan migrate
to add the "digested_at" column - Open the digestif.php config file and update the User model that your app uses.
- Open your App/Console/Kernel.php and in the scheduler define how often you would like the digest process to run. E.g.
$schedule->command('digestif:pour')->hourly();
Alternatively, setup your own cron process to runphp artisan digestif:pour
when you would like emails to be sent. - Sit back and let Digestif handle the rest 🥃
Config options
Using the vendor:publish method you have full control of both the notification that we use behind the scenes. You can find this in your App/Notifications folder and you're welcome to tweak this to something that works better for you.
For example:
Roadmap
-
Simple digest email - Refactor to filter out user notifications only
- Unsubscribing from the digest email
- Itemised digest emails as well as our simple counter version
- User controls to set the frequency of their digests
Upgrade Guide
To v0.20 from v0.10
Add the following to your digestif.php config file:
/*
|--------------------------------------------------------------------------
| Notifications read column
|--------------------------------------------------------------------------
|
| Please tell us what column stores the read toggle for notifications
|
*/
'read_column' => 'read_at',
To v0.10 from v0.0.2
Add the following to your digestif.php config file
/*
|--------------------------------------------------------------------------
| Notifications table user ID column
|--------------------------------------------------------------------------
|
| Please tell us what column stores the user_id used for notifications
|
*/
'notifications_user_id_column' => 'notifiable_id',