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

Scheduler Bundle Laravel Package

multiinfo/scheduler-bundle

A Symfony bundle for scheduling recurring tasks and background jobs. Integrates configurable schedules into your application, letting you define, manage, and run timed jobs with minimal setup. Suited to projects needing lightweight, code-driven task scheduling.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What this package is. multiinfo/scheduler-bundle is published by monark-it and named after MultiInfo, the Polish SMS/MMS gateway. The Bundle suffix and the vendor namespace strongly indicate this is a Symfony bundle, not a Laravel package. Its purpose is most likely to schedule and dispatch SMS messages through the MultiInfo API from within a Symfony application. The description ("MIT Scheduler Bundle") adds no information beyond the license.

Architecture fit — poor as-is. Laravel and Symfony share a Composer ecosystem, PSR interfaces, and Carbon/DateTime utilities, but they do not share an extension model. Laravel discovers packages through ServiceProvider classes and extra.laravel metadata; Symfony bundles are registered in config/bundles.php and expose Bundle subclasses with DependencyInjection extensions. A Symfony bundle will install via Composer but will not auto-register, auto-configure, or expose facades in a Laravel app. Any Laravel integration is therefore a porting exercise, not an installation.

Integration feasibility — low to moderate. The reusable asset is the domain logic: request signing, payload shaping, scheduling semantics, and retry behavior against the MultiInfo HTTP API. That logic is likely a few hundred lines and can be lifted into a Laravel service class, a queued job, and a schedule() entry. The bundle's Symfony-specific wiring (DI extension, configuration tree, event subscribers) is disposable. Expect one to three days of engineering to reimplement natively, versus an open-ended effort to shim the bundle.

Technical risk — high, concentrated in adoption signals. One star, zero dependents, and a composite score of 0.035 means essentially no production validation and no community to catch regressions. There is no evidence of CI, test coverage, or a release cadence in the metadata provided. The package is also a thin regional wrapper: MultiInfo is a Polish gateway, so the vendor relationship, documentation language, and rate-limit behavior are all outside the normal Laravel ecosystem expectations. SMS credentials are high-value secrets and any bundled configuration or logging path needs review before use.

Key questions.

  1. What Symfony and PHP version constraints does composer.json declare, and is the code PSR-4/PSR-11 compliant enough to reuse?
  2. Does the bundle own scheduling logic (cron expressions, delayed dispatch) or does it only wrap immediate sends?
  3. How are MultiInfo credentials supplied — env vars, DI parameters, or config files that might be committed?
  4. Is there any retry, idempotency, or delivery-receipt handling, or does it fire-and-forget?
  5. Who maintains it, and what is the last commit date relative to the Symfony LTS cycle?
  6. Is there a hard requirement to use MultiInfo, or is the gateway decision still open?

Integration Approach

Stack fit. Assume a Laravel 10/11 application on PHP 8.2+. The bundle almost certainly targets Symfony 4/5 and PHP 7.x–8.0. Version constraints may make Composer resolution fail outright on a modern Laravel app, which is itself a useful early signal. Even where resolution succeeds, expect no route, command, facade, or config publication.

Recommended migration path — extract, don't adopt.

  1. Read, don't install. Clone the repository and read the client and scheduler classes directly. Treat it as reference implementation for the MultiInfo API contract.
  2. Reimplement natively. Build App\Services\MultiInfoClient around Laravel's HTTP client, an SendSmsJob on the queue, and schedule dispatch through routes/console.php or the console kernel. This preserves the only valuable part (protocol knowledge) and discards the incompatible part (Symfony wiring).
  3. Fork only if the logic is substantial. If the bundle contains non-trivial scheduling or retry semantics worth preserving, fork it under your own namespace, strip the DI extension, and wrap it in a ServiceProvider. Pin the fork to a commit SHA. Do not depend on the upstream for patches.
  4. Do not add it as a transitive dependency of a shared internal package; the abandonment risk propagates.

Compatibility checks before any code. Confirm PHP constraint, Symfony constraint, presence of symfony/framework-bundle as a hard requirement (which would drag Symfony packages into a Laravel app), and whether the license headers are intact given the MIT declaration. Verify the vendor namespace actually exists on Packagist and maps to this repository.

Sequencing.

  • Week 1: source review, API contract extraction, confirm MultiInfo account and sandbox access.
  • Week 2: native client + queued job + tests against a stubbed gateway.
  • Week 3: scheduling integration, observability, credential management through Laravel's encrypted config or a secrets manager.
  • Then: production rollout behind a feature flag, starting with a low-volume notification stream.

Operational Impact

Maintenance. Effectively zero upstream support. Whatever you build, you own permanently — including the MultiInfo API contract if the gateway changes. Budget for a quarterly review of the integration and a documented owner. If you fork, record the divergence in an ADR so a future engineer does not attempt to sync with upstream.

Support. No maintainer bench, no dependents, no issue history to mine. Troubleshooting is first-principles debugging against the MultiInfo API and the gateway's own documentation, which is likely Polish-language. Establish a direct commercial support channel with MultiInfo before committing; that relationship matters far more than this package.

Scaling. SMS throughput is bounded by the gateway's rate limits and your account tier, not by the package. The real scaling concern is cost and fan-out: an unbounded scheduled job can generate a very large bill very quickly. Enforce per-run and per-day send caps, and require explicit opt-in for any schedule that can send more than a threshold volume. Route all sends through the queue with a dedicated connection so SMS latency never blocks web requests, and set concurrency limits to stay inside the gateway's contract.

Failure modes.

  • Silent failure — fire-and-forget sends with no receipt polling means messages vanish without an alert. Require delivery-receipt handling or at minimum a per-batch success metric.
  • Duplicate sends — no idempotency key means retries double-bill and double-message. Implement a dedupe key at the job level.
  • Schedule drift and timezone bugs — a Polish gateway plus a distributed app invites off-by-one-hour sends. Pin the scheduler timezone explicitly and test DST boundaries.
  • Credential exposure — SMS gateway credentials in env files, logs, or exception traces. Use a secrets manager and scrub payloads from logs.
  • Abandonment — a security advisory in a transitive dependency with no upstream patch path. Mitigate by minimizing the dependency surface, ideally to zero by reimplementing.

Ramp-up. Low technical ramp-up for a Laravel team (the concepts are familiar: HTTP client, queue, scheduler). The real ramp-up cost is commercial and linguistic: MultiInfo account provisioning, pricing tiers, sender-name registration, and Polish-language API documentation. Estimate one to two weeks of combined engineering and vendor onboarding before the first production message.

Bottom line. This package is a reference source, not a dependency. Its adoption signals are too weak to justify integration effort, and its Symfony-native design makes direct use in Laravel impractical. Extract the API contract, reimplement natively in roughly a week, and invest the saved effort in gateway support terms, delivery observability, and send-volume guardrails.

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.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings