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

Atom Bundle Laravel Package

tomatom/atom-bundle

A Symfony bundle from TomAtom that packages Atom functionality as a reusable extension, making it easier to wire Atom features into Symfony applications through standard bundle configuration and services.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — poor for a Laravel codebase. tomatom/atom-bundle is a Symfony bundle, not a Laravel package. That distinction is structural, not cosmetic: bundles register through Bundle classes, DependencyInjection\Extension config trees, and compiler passes, while Laravel expects Illuminate\Support\ServiceProvider registration, facades, and container bindings resolved through its own kernel. Laravel consumes Symfony components (HttpFoundation, Console, Finder), not Symfony bundles. There is no supported path to composer require this into a Laravel app and have it boot.

Integration feasibility — conditional, and only after a spike. Two viable paths exist, both of which are engineering projects rather than adoptions:

  1. Extract the domain layer. If the bundle's value lives in plain PHP services (repositories, clients, value objects) with the Symfony wiring as a thin shell, we can vendor those classes into a first-party Laravel package with our own service provider. This is the preferred path and is typically 2–5 days for a small package, but depends entirely on how much logic is entangled with Symfony contracts (EventDispatcherInterface, ConfigurableInterface, autowired constructor graphs).
  2. Bridge the container. Running a Symfony DI container alongside Laravel's is technically possible and almost always a mistake — two service locators, duplicated configuration surfaces, and no clean lifecycle story for requests and queues. Recommend against.

Technical risk — high, concentrated in three places.

  • License. GPL-2.0 is a strong copyleft. If we distribute or SaaS-host a derivative work with GPL code linked in, we inherit obligations to release corresponding source. For an internal-only tool this may be tolerable; for a customer-facing product it is a legal review blocker, not an engineering decision.
  • Adoption signal. 4 stars, 0 dependents, single maintainer. This is essentially an unpublished personal project. There is no ecosystem evidence of production use, no third-party tutorials, and no downstream packages to infer stability from.
  • Release metadata anomaly. The listed last release of 2026-07-31 is in the future relative to normal evaluation; treat this as a data-quality flag and verify against Packagist and the repo's tag history before relying on any release cadence assumptions.

Key questions for the maintainer (or for our own spike):

  • What problem does this actually solve, and is the bundle a wrapper around a framework-agnostic core library?
  • Are PHP and Symfony version constraints declared, and which Symfony LTS lines are supported?
  • Is there a documented security policy and a history of CVE response?
  • Does the maintainer offer any license exception, dual licensing, or commercial terms?
  • What is the test coverage and CI posture — are there integration tests, or only unit tests against mocks?
  • Is there a roadmap, or is the project effectively feature-complete and dormant?

Integration Approach

Stack fit. The package fits a Symfony 5/6/7 application. It does not fit Laravel, Lumen, Slim, or vanilla PHP. If our fleet is mixed and this service is the only Symfony touchpoint, adopting it inside a Symfony service and exposing it to Laravel over HTTP or a queue is cleaner than any in-process bridge — but that architectural cost almost certainly exceeds rewriting the functionality.

Migration path. Sequence it as a decision gate, not an implementation plan:

  1. Two-day spike. Clone the repo, read the DependencyInjection/ and Resources/config/ directories, and classify each class as wiring vs logic. Produce a one-page finding: "the reusable core is N classes, M of which touch Symfony contracts."
  2. License gate. Legal reviews GPL-2.0 against our distribution model before any code is copied. This runs in parallel with the spike and can kill the effort independently.
  3. Build-vs-adopt. If the core is small and clean, reimplement it natively in Laravel — likely cheaper than an adapter and unambiguous on licensing. If the core is large and genuinely novel, pursue a license exception or a paid support arrangement, and only then write the adapter.
  4. Adapter, if approved. First-party package, ServiceProvider + config publish, no Symfony bundle loading. Pin the vendored source to a commit SHA and record the provenance in the repo.

Compatibility. Composer will be the first friction point. Laravel's symfony/* component constraints are tight and frequently diverge from what a bundle declares; expect composer why-not conflicts on symfony/http-kernel and symfony/dependency-injection before a single line of code runs. Resolve this during the spike — do not discover it in a feature branch. Verify the package's composer.json for an explicit php constraint and a symfony/framework-bundle range.

Sequencing within a delivery plan. Do not place this on a critical path. Treat it as a background evaluation with a hard two-week timebox and a default answer of "no." The adoption cost is dominated by unknowns, so the only defensible commitment is to the spike, not to the integration.

Operational Impact

Maintenance. We would be the sole maintainers in practice. With one upstream contributor and no dependents, upstream bug fixes arrive on the author's schedule or not at all. Budget for a fork: if we vendor the code, we own patching it, tracking upstream commits manually, and re-applying our changes on any refresh. Add a quarterly review task to check for abandonment.

Support. No commercial support tier, no SLA, no visible community to ask questions in. Internal escalations terminate with whoever did the spike. Contrast this with a mainstream package where a Stack Overflow answer or an upstream issue thread usually exists; here, debugging is entirely first-principles reading of unfamiliar code.

Scaling. Unknown without knowing the workload, and that uncertainty is itself the risk. Specific things to probe during the spike: does the bundle issue queries in loops, hold state in singletons registered in the container, or assume a single long-lived process? Symfony's shared-container model and Laravel's queue worker model differ in ways that turn innocent-looking memoization into stale-data bugs across jobs. Load-test before trusting it under queue or Octane workloads.

Failure modes, ranked by likelihood:

  1. Composer dependency conflict on a Laravel or Symfony component upgrade — the package silently blocks a framework security patch, and we are forced to fork under time pressure.
  2. Abandonment — the maintainer stops tagging; the package rots against new PHP versions; we inherit a frozen dependency with no upgrade path.
  3. License exposure — GPL obligations discovered late, after the code is in production and embedded in a distributed artifact. This is the expensive one; it can force a rewrite or a source-release obligation.
  4. Behavioral drift across long-lived processes — container-scoped state leaking between queue jobs, manifesting as intermittent data bugs that are hard to attribute to a dependency.
  5. Silent framework coupling — the adapter works until a Laravel minor release changes container resolution semantics, then breaks without warning because nothing tests the seam.

Ramp-up. The team needs Symfony bundle conventions — extension classes, configuration trees, compiler passes, tag-based service collection — none of which are common Laravel knowledge. Estimate one to two days of genuine ramp-up before an engineer can read the package confidently, on top of the spike. Write the findings down; the second engineer to touch this will otherwise repeat the work.

TPM recommendation. Score of 15/100 with zero dependents and a copyleft license is a clear "do not adopt" for a Laravel product. The only defensible next step is the timeboxed spike plus a license review, with a strong prior toward reimplementing the underlying capability natively. Treat any push to adopt as a request for a specific, documented justification that survives both gates.

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
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons