tourze/doctrine-cron-job-bundle

Doctrine CronJob Bundle

0.1.2 2025-05-06 06:00 UTC

This package is auto-updated.

Last update: 2025-05-11 17:47:33 UTC


README

English | 中文

This bundle provides functionality for managing cron jobs using Doctrine in Symfony projects.

Features

  • Support for database-managed cron jobs
  • Support for scheduled SQL query execution
  • Integration with Symfony cron job system
  • Entity management and repository services

Installation

composer require tourze/doctrine-cron-job-bundle

Usage

  1. Register the Bundle
// config/bundles.php
return [
    // ...
    Tourze\DoctrineCronJobBundle\DoctrineCronJobBundle::class => ['all' => true],
];
  1. Create a CronJob entity
use Tourze\DoctrineCronJobBundle\Entity\CronJob;

$job = new CronJob();
$job->setName('my-job');
$job->setCommand('php bin/console app:my-command');
$job->setSchedule('* * * * *'); // Run every minute
$job->setDescription('My cron job');
$job->setValid(true);

// Save to database
$entityManager->persist($job);
$entityManager->flush();
  1. Create a CronSql entity
use Tourze\DoctrineCronJobBundle\Entity\CronSql;

$cronSql = new CronSql();
$cronSql->setTitle('Statistics Task');
$cronSql->setSqlStatement('SELECT COUNT(*) FROM users');
$cronSql->setCronExpression('0 0 * * *'); // Run at midnight every day
$cronSql->setValid(true);

// Save to database
$entityManager->persist($cronSql);
$entityManager->flush();

Unit Tests

The project includes a complete unit test suite with all tests passing:

./vendor/bin/phpunit packages/doctrine-cron-job-bundle/tests

Test Plan Status

The following tests have been completed and passed:

  • Entity Tests
    • CronJob Entity Test (100% passed)
    • CronSql Entity Test (100% passed)
  • Provider Tests
    • DoctrineProvider Test (100% passed)
    • CronSqlProvider Test (100% passed)
  • Dependency Injection Tests
    • DoctrineCronJobExtension Test (100% passed)
  • Bundle Tests
    • DoctrineCronJobBundle Test (100% passed)

License

MIT License. See LICENSE file for more information.