Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Cron Bundle Laravel Package

fgits/cron-bundle

fgits/cron-bundle is a Symfony bundle for managing cron jobs from configuration, letting you define, schedule, and run recurring tasks without editing system crontabs directly. It integrates cron expressions with your app's services and provides commands to list and execute due jobs.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — poor / mismatch. fgits/cron-bundle is a Symfony Bundle, not a Laravel package. It depends on the Symfony bundle lifecycle (Kernel::registerBundles(), config/bundles.php, container compilation passes, Bundle base class). Laravel has no bundle registry: its service container, package discovery (composer.json extra.laravel.providers), and bootstrapping are entirely different. The package cannot be "installed and discovered" in a Laravel application the way a normal package can.

Integration feasibility — low, and largely unnecessary. The bundle's value proposition ("scheduled execution of Symfony commands") is already a first-class Laravel capability:

  • Laravel Scheduler (Illuminate\Console\Scheduling\Schedule) with a single cron entry: * * * * * cd /path && php artisan schedule:run >> /dev/null 2>&1.
  • Laravel's console kernel is built on Symfony Console, so any Symfony Command class can usually be registered as an Artisan command via $this->commands([...]) — giving you the commands without the bundle.

So even a successful integration would duplicate existing scheduler machinery and add a second, non-idiomatic scheduling layer to maintain.

Technical risk — high.

  • Provenance: hosted at git.fgit.de, a non-canonical forge. No Packagist presence implied, no stars, no dependents. Supply-chain and long-term availability risk (repository could vanish; no version tags/semver guarantees to lean on).
  • Zero adoption: 0 dependents means no external battle-testing, no issue history, no Stack Overflow coverage — every defect becomes your team's problem.
  • Maintenance signal: 0 score and no stars is a weak signal for ongoing maintenance; a scheduler is exactly the kind of component that must keep pace with PHP/Symfony version changes.
  • Overlap with upstream: Symfony now ships symfony/scheduler (6.3+). A third-party cron bundle is a legacy pattern; adopting it means inheriting a technology direction the ecosystem is moving away from.

Key questions to resolve before any investment:

  1. Is the actual requirement "run Symfony commands on a schedule," or "port an existing Symfony service into Laravel"? These have very different answers.
  2. Who maintains fgits/cron-bundle, and is there a tagged release/CHANGELOG/Symfony version constraint matrix?
  3. Does the code rely on container compilation passes or bundle config that cannot be re-expressed as a Laravel service provider?
  4. Is there a hard dependency on Symfony's Kernel/Bundle interfaces, or is the "bundle" wrapper thin over a plain scheduler class that could be extracted?
  5. What is the licensing and security-review status of the source?

Integration Approach

Stack fit — does not fit as-is. Laravel's package contract is ServiceProvider + optional Facade/config publishing. The bundle contract is Symfony\Component\HttpKernel\Bundle\Bundle. There is no adapter layer from one to the other; you would be hand-porting code.

Recommended path (in order of preference):

  1. Do not adopt — use Laravel Scheduler. Model the required jobs as Artisan commands registered in app/Console/Kernel.php (or routes/console.php in L11 style), scheduled with ->cron(), ->daily(), ->withoutOverlapping(), ->onOneServer(). This is the lowest-risk, zero-new-dependency outcome and covers the stated functionality completely.
  2. Port the commands only. If specific Symfony command classes are genuinely needed, depend on symfony/console (already transitively present in Laravel) and register the command classes in Laravel's console kernel. You get the command logic without the bundle's bootstrapping.
  3. Isolate, if you must evaluate the bundle. Run it inside a minimal Symfony application in a separate container/process, invoked from Laravel via a queued job or a shell call. Do not attempt to mount Symfony bundles inside Laravel's container. This keeps the blast radius contained but adds an operational hop and a second framework runtime.
  4. Fork and strip. If the scheduling logic itself is the asset, vendor the relevant classes into your codebase behind an interface you own, so you control updates and can drop the bundle wrapper.

Compatibility considerations: verify PHP version constraints, Symfony major version (^4/^5 vs ^6/^7), and whether the bundle expects Symfony's Cache, Lock, or EventDispatcher components with specific config. Any of these may collide with Laravel's own bindings if you attempt in-process usage.

Sequencing:

  1. Confirm requirement with the requesting team (see Key Questions).
  2. Proof-of-concept Laravel Scheduler implementation of the same jobs — timebox to days, not weeks.
  3. Only if step 2 fails to satisfy the requirement, run the isolated-Symfony spike.
  4. Decide on adopt/port/reject with a written record; if "reject," capture the scheduler mapping so the decision isn't relitigated.

Operational Impact

Maintenance. Adopting a zero-adoption, non-Packagist bundle makes your team the de facto maintainer. There is no upgrade path you don't author yourself, and no community pressure testing the code across PHP/Symfony versions. By contrast, Laravel Scheduler is maintained by the framework vendor and upgraded with the framework.

Support. No stars, no dependents, no evident issue tracker activity means no support surface. Escalation for defects is "read the source." For a scheduling component — which fails silently by nature — that is a poor support posture.

Scaling. Scheduler concerns at scale are: distributed locking (avoiding duplicate runs across replicas), overlap prevention, timeouts, and observability of missed runs. Laravel provides onOneServer() (requires a shared cache driver), withoutOverlapping(), runInBackground(), and schedule:list/schedule:test for inspection. The bundle's behavior on these axes is unknown and would need to be verified and likely rebuilt.

Failure modes to instrument (regardless of choice):

  • Silent non-execution: cron entry missing, or the scheduler process not running — the classic failure. Add heartbeat monitoring (e.g., a dead-man's-switch check on the scheduler), not just error alerting.
  • Duplicate execution: multiple app replicas each running the schedule; needs a shared lock store.
  • Overlap/long-running jobs: a job exceeding its interval stacking up.
  • Missed runs on deploy/restart: schedule defined only in a running process, lost on restart.
  • Clock/timezone drift in cron expressions.
  • Provenance failure: the git.fgit.de remote becoming unavailable, breaking reproducible builds — pin a commit hash and mirror the artifact internally if you proceed.

Ramp-up. Near-zero for the Laravel Scheduler path — it is standard Laravel knowledge and any team member can maintain it. High for the bundle path: engineers must learn Symfony bundle conventions, container compilation, and the unstated behavior of an undocumented third-party scheduler, in a Laravel codebase where none of that knowledge otherwise exists.

Bottom line for the product decision: the functionality is already available in the target stack, the package is architecturally incompatible with Laravel, and its adoption/maintenance signals are minimal. Recommend reject adoption, implement the requirement with Laravel Scheduler, and revisit only if a concrete gap is demonstrated that the framework-native approach cannot close.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core