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

Datasource Bundle Laravel Package

fsi/datasource-bundle

FSi Datasource Bundle integrates the FSi DataSource component with Symfony, providing a reusable abstraction for paginated, filterable, and sortable listings backed by Doctrine or custom sources. Ideal for admin grids, search results, and API collections.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The first thing to flag is a category mismatch: fsi/datasource-bundle is a Symfony bundle, not a Laravel package. It ships a Bundle class and a DI extension, and its entire declared purpose is (a) registering the FSi DataSource Component as a container service and (b) exposing Twig datasource rendering functions. Laravel has no BundleInterface, no compiler passes, and uses Blade — so roughly 100% of the bundle's actual code is framework plumbing we would have to discard or reimplement. The reusable substance lives in the underlying fsi/datasource component, not here. Treat the bundle as a packaging artifact, not an integration target.

Integration feasibility. Low as-is for a Laravel stack. Even inside a Symfony application, the surface is thin: a Composer install plus a bundle registration line and you're done — which also means the bundle contributes very little beyond autoconfiguration. The real feasibility question is whether the component's abstraction (a uniform data-source interface for grids/listings over Doctrine or arrays) earns its keep versus a handful of repository/query-builder classes we control.

Technical risk. This is the dominant concern:

  • Dormancy. Last release 2021-09-02; nearly four years without a tag. No evidence of CI coverage against modern PHP/Symfony/Twig majors.
  • Zero dependents, 5 stars. No community validation, no downstream pressure to patch, no ecosystem of forks or workarounds to lean on.
  • Single-vendor governance. FSi (a Polish Symfony agency) controls the roadmap; this was almost certainly extracted for their internal portals. Their usage pattern may not match ours.
  • Twig coupling. The bundle's rendering functions bind us to Twig, which is a dead end in a Blade environment and a refactor cost even for us.
  • Dependency drift. Unmonitored transitive dependency tree (Symfony components, Twig, possibly Doctrine), no obvious security advisory watch.

The low star count and one-off release cadence suggest a utility extracted for a single client rather than a maintained product.

Key questions

  • Which Symfony, Twig, PHP, and Doctrine versions are actually supported? Is there a 6.x/7.x compatible branch in the repo even if untagged?
  • What problem does the underlying component solve that we don't get from our ORM's query builder plus a resource/presenter layer?
  • Is FSi actively using this in a maintained product? Are there recent unmerged PRs or an unreleased main?
  • Do we need the abstraction at all, or is the requirement (uniform tabular data feed) satisfied by 100–200 lines we own?
  • Is there a maintained fork or an equivalent first-party solution on either the Symfony or Laravel side?

Integration Approach

Stack fit. Symfony: fits, but only as a convenience wrapper — and only if version constraints line up. Laravel: does not fit, full stop. Recommend we evaluate the component in isolation and treat the bundle as documentation of intended wiring.

Migration path. There is no migration path from the bundle into a Laravel app. The viable path is: vendor a small piece of the component's interface design, or adopt the component and write our own service provider and Blade-side renderer. If the component's core is a simple DataProviderInterface::getData() contract, reimplementing is likely cheaper than carrying an abandoned dependency.

Compatibility. Must verify before going further: PHP 8.1–8.3, Symfony 6/7, Twig 3, Doctrine DBAL/ORM majors, and PSR container versions. A 2021 tag almost certainly pins Symfony 4/5-era constraints. Confirm whether composer require resolves cleanly on our target runtime or requires --ignore-platform-reqs hacks — the latter is a stop-ship signal.

Sequencing.

  1. Spike (1–2 days): install in a sandbox on our target stack, attempt a real data-source against an existing model, confirm whether constraints resolve or break.
  2. Component-first evaluation: read fsi/datasource directly; determine if the pattern (not the code) is worth adopting.
  3. Build-vs-buy decision: weight ~200 LOC of our own adapter against inheriting an unmaintained dependency.
  4. If adopting: fork, tag, add CI against our versions, and pin — do not consume the upstream directly.
  5. If not: capture the interface shape as an internal design note and close the ticket.

Operational Impact

Maintenance. Assume we own it. An unmaintained dependency with zero downstream users means every future PHP/Symfony/Twig bump is our patch to write. Budget a fork-maintenance line item or plan an exit. Without a fork, we inherit breakage with no upstream response time guarantee.

Support. No vendor support channel, no SLA, no issue triage evidence. Internal onboarding means reading the source. For a 5-star package with no dependents, expect to be the de facto maintainer.

Scaling. Runtime overhead is negligible — it is an abstraction layer over data access, not a processing engine. Actual scaling characteristics are determined by the underlying provider (Doctrine queries, pagination, N+1 behavior in grid rendering). The Twig-side rendering functions are the only meaningful hot path, and they are trivial. Scaling is not a differentiator here.

Failure modes.

  • Silent abandonment — no CVE/patch signal; breakage surfaces at upgrade time, not before.
  • Framework version wall — composer resolution failure blocking an unrelated framework upgrade, forcing a rush fork.
  • Twig/Blade impedance — rendering functions unusable in a Laravel app, discovered late if scope wasn't clear.
  • Transitive vulnerability — a compromised or EOL package in the dependency tree with nobody watching.
  • Single-point ownership — one agency's priorities determine our upgrade calendar.

Ramp-up. Low for a Symfony developer (a bundle with a DI extension and a Twig extension is a familiar, hour-scale read). Moderate for Laravel-only engineers, who would be learning Symfony bundle conventions for no transferable benefit. Given the package's size, onboarding cost is not the issue — the total cost of ownership is.

Recommendation. Do not adopt as a dependency for a Laravel codebase. Run the two-day spike against the underlying component; default to a small in-house adapter unless the spike proves the component carries substantially more logic than its README implies. If we do adopt, fork and pin, and record an explicit exit criterion. The opportunity score (26.29) against a 5-star, 0-dependent, four-year-stale, framework-mismatched package reads correctly: this is a reference implementation, not an integration.

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.
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
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle