Laravel Schedule Manager. #Totem
Laravel Totem is pretty dashboard where you can manage schedules. Enable/Disable scheduled tasks on the fly without going back to your code again. This dashboard is similar to Laravel Horizon. Very easy to install and use. Lets dive into deep and see how its work.
Installation
Installation is very simple and straight forward. But good news is laravel totem support all version of laravel and its have different version for different version of laravel. so it support from laravel 5 to latest 9 version. details.Use composer to install totem to your Laravel project.
composer require studio/laravel-totem
Add TotemServiceProvider to the providers array of your Laravel v5.4 application's config/app.php
Studio\Totem\Providers\TotemServiceProvider::class,
Once Laravel Totem is installed & registered, Run the migration
php artisan migrate
Publish Totem assets to your public folder using the following command
php artisan totem:assets
Table Prefix
Totems' tables use generic names which may conflict with existing tables in a project. To alleviate this the .env param TOTEM_TABLE_PREFIX can be set which will apply a prefix to all of Totems tables and their models.
Updating
Please republish totem assets after updating totem to a new version
php artisan totem:assets
Accessing Dashboard and configuration
To access totem dashboard go to your APP_URL/totem e.g localhost:8000/totem. You can create, edit, update, delete and import, export tasks. All possible value that you need to set for a shedule task is available in totem. There are 3 tags for publishing asset, config and views. So you can go with default or can be customized. You can publish by following commnad
php artisan vendor:publish --provider="Studio\Totem\Providers\TotemServiceProvider"
or
php artisan vendor:publish --tag=['totem-assets', 'totem-config', 'totem-views']
If you want publish all then use first command but if you wish to custom or alter the config or views then use second commnad.
It can be possible change route_prefix, possible to add midddleware, filter artisan command, use different database connection than application database and there is a bradcasting channel at task.events. More details can be found here.
Conclution
Schedule tasks can be manage from cli and that can be manage by only by developer but laravel totem give an oppurtunity to manage schedule task by anyone. Task creating form has all field explations and it shows description details when choose the artisan command from dropdown. I like this tool and its a very quick, short overview but I have plan to write more of laravel totem later.