natepage / schedule-bundle
Provides the Command Scheduling logic of Laravel in a Symfony application
Installs: 34
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
pkg:composer/natepage/schedule-bundle
Requires
- php: ^7.1
- dragonmantank/cron-expression: ^2.3
- nesbot/carbon: ^2.22
Requires (Dev)
- symfony/symfony: ^4.3
This package is auto-updated.
Last update: 2026-01-16 05:09:08 UTC
README
Provides the Command Scheduling logic of Laravel in a Symfony application
Installation
$ composer require loyaltycorp/schedule-bundle
Until a recipe is created for this bundle you will need to register it manually:
// config/bundles.php
return [
// Other bundles...
LoyaltyCorp\Schedule\ScheduleBundle\ScheduleBundle::class => ['all' => true],
];
Usage
Register Your Scheduled Commands
To register the scheduled commands this bundle implements a concept of "schedule providers", thanks to Symfony's
autoconfigure feature, the only thing required is to create services that implement LoyaltyCorp\Schedule\ScheduleBundle\Interfaces\ScheduleProviderInterface.
The ScheduleInterface passed to the schedule method offers all the features of the Laravel Console Scheduling.
// src/Schedule/MyScheduleProvider.php
use LoyaltyCorp\Schedule\ScheduleBundle\Interfaces\ScheduleProviderInterface;
final class MyScheduleProvider implements ScheduleProviderInterface
{
/**
* Schedule command on given schedule.
*
* @param \Loyaltycorp\Schedule\ScheduleBundle\Interfaces\ScheduleInterface $schedule
*
* @return void
*/
public function schedule(ScheduleInterface $schedule): void
{
$schedule
->command('poc:hello-world', ['-v'])
->everyMinute()
->setMaxLockTime(120);
$schedule
->command('poc:hello-world-2')
->everyFiveMinutes();
}
}
Run The Schedule
This bundle providers a console command to run the schedule:
$ php bin/console schedule:run