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

Cronos Bundle Laravel Package

mybuilder/cronos-bundle

Symfony bundle that integrates the Cronos cron expression library, making it easy to parse, validate, and evaluate cron schedules for scheduled jobs and time-based tasks in PHP applications.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Scope correction up front: this is a Symfony bundle, not Laravel. The first PM decision it supports is a routing decision — if we're a Laravel shop, this package is not a candidate. Laravel's scheduler already consumes standard cron expressions, and the underlying parser (dragonmantank/cron-expression) can be installed directly without a framework integration layer. The "Laravel/PHP" framing on this package is a mismatch worth catching before it reaches a backlog.
  • Build vs. buy on a commodity capability. Cron expression parsing, validation, and next/previous run calculation is solved, non-differentiating work. The buy case here is small but real: hours, not quarters. Frame it as avoided yak-shaving, not avoided headcount — this is a thin integration shim, not a subsystem.
  • Roadmap enablement for schedule-facing features. The concrete product surfaces this unlocks are the ones users actually notice: a schedule builder with inline validation ("this expression will never run"), a "next 5 run times" preview in an admin UI, a human-readable rendering of a stored expression, and timezone-correct next-run display. If any of those sit on the roadmap behind "we'd need cron parsing," this pulls them forward cheaply.
  • Do not let it absorb scheduling scope. The bundle parses and computes; it does not run jobs. If a stakeholder reads "cron" and assumes we're buying a job runner, correct that immediately — execution stays with Symfony Scheduler/Messenger or the OS crontab. Conflating the two is how a one-hour integration becomes a mis-scoped epic.
  • Exit strategy is cheap here, so spend nothing on lock-in paranoia — but still isolate. Wrap it behind a single application-level interface (ScheduleExpression or similar). The cost of the wrapper is trivial; the benefit is that swapping parsers or moving to a Laravel stack later is a contained change rather than a grep-and-replace across the codebase.
  • Total cost of ownership is the real risk, and it's maintenance signal rather than maintenance effort. Last release January 2023, 87 stars, no visible release cadence. The integration code barely changes, so staleness is tolerable — but a pinned, unmaintained bundle eventually blocks a Symfony major upgrade. Assign an owner and a "replace with three lines of service config" fallback, and the TCO rounds to zero.

When to Consider This Package

  • Adopt when: we're on Symfony 5/6-era PHP, we need cron parsing as an injectable service rather than a static helper, and we want autowiring without hand-writing service definitions in services.yaml. In that case the bundle is genuinely less code than the alternative, and the alternative isn't hard.
  • Adopt when cron parsing appears in three or more places (validation on write, preview on read, next-run computation in a worker) and centralizing it behind DI reduces duplication.
  • Look elsewhere when: we're on Laravel. Use dragonmantank/cron-expression directly, or rely on the framework scheduler's existing parsing. Adding a Symfony bundle to a Laravel app is a category error.
  • Look elsewhere when the requirement is actually execution or observability — running scheduled jobs, retry/backoff, missed-run alerting, run history. This package does none of that; Symfony Scheduler, Messenger, or a managed scheduler is the right conversation.
  • Look elsewhere when we need cron dialects beyond standard five-field syntax (Quartz six/seven-field, @reboot-style macros with custom semantics, sub-minute precision). Verify dialect coverage against the underlying parser before committing the UI copy.
  • Defer when the team's Symfony version is outside the bundle's supported range or the project is on the cusp of a framework major upgrade — in that case the bundle becomes a blocker for a migration that matters more than the feature it enables. Re-evaluate after the upgrade lands.
  • Watch for: the Symfony bundle is a convenience layer over a separate parser library. Dependency health should be judged on that underlying parser, not on the bundle's star count — a stale wrapper over a well-maintained parser is a different (and much better) risk than a stale parser.

How to Pitch It (Stakeholders)

To executives: This is a small, low-risk dependency that lets us ship user-facing scheduling features — schedule validation, next-run previews, human-readable cron descriptions — without engineering time spent on a solved parsing problem. It is not a job scheduler; it changes what we can show and validate, not what we can run. Cost is negligible and reversible: a thin integration layer we can remove in an afternoon. The one thing to note is that it's a Symfony component, so it applies only if that stack is in play, and the package itself hasn't shipped since early 2023 — acceptable for glue code, but it means we own the upgrade path rather than inheriting it. Recommendation: adopt, conditionally on naming an internal owner and confirming our framework version is supported.

To engineering: Treat this as glue, not architecture. Confirm the supported Symfony range before adding it, check that the underlying parser library carries the actual version support (the bundle is just DI registration), and wrap the injected service behind a single application-level interface so parser changes and framework upgrades stay contained. Pin the version; the bundle's release cadence is thin, so plan on a "replace with explicit service config" fallback if it ever pins us out of a Symfony upgrade. If we're on Laravel, stop — install the parser directly or use the framework scheduler and skip the bundle entirely.

Bottom line for the decision log: Low-value, low-risk, low-cost adoption on Symfony only; the capability is commodity and the integration is reversible. The decision that actually matters is scope — this buys parsing and preview, not scheduling and execution, and the roadmap should not conflate them.

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.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib