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

Admin Tree Bundle Laravel Package

fsi/admin-tree-bundle

FSI Admin Tree Bundle adds hierarchical tree management to PHP admin interfaces, helping you organize and reorder nested records such as categories, menus, and parent-child data through a lightweight Symfony bundle.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — blocking mismatch. fsi/admin-tree-bundle is a Symfony bundle, not a Laravel package. It plugs into the Symfony DependencyInjection component (Bundle subclass, Extension, service definitions under Resources/config) and targets fsi/admin-bundle, a Symfony CRUD-admin generator. Laravel has no bundle/extension bootstrap, no service container tags consumed this way, no Twig, and no Symfony routing annotations. Composer will happily download the code, but nothing in a Laravel kernel will ever register, boot, or route to it. There is no adaptation layer worth building — the work to bridge it exceeds the work to rewrite the feature.

Integration feasibility — effectively zero for the stated stack. The package's entire surface is "add up/down actions to an admin CRUD list." In Laravel that is a route, a controller action, an integer position column, and two buttons — a day of work with tests. Importing this dependency instead introduces a dormant Symfony/Doctrine/Twig toolchain into a codebase that cannot execute it.

Technical risk

  • Framework incompatibility: non-recoverable without a full Symfony host app.
  • Abandonment: last release 2020-02-17; targets the PHP 7.x / Symfony 3–4 era, so even in a Symfony app it likely conflicts with Symfony 5.4+/6/7 and PHP 8.1+ (which Laravel 10/11 requires).
  • Transitive risk: the upstream fsi/admin-bundle is itself low-activity; the real dependency chain is larger and equally stale.
  • Zero adoption: 0 stars, 0 dependents, score 0.09 — no community security review, no issue triage, no third-party usage to validate against.
  • Authorization surface: up/down actions are state-mutating admin endpoints; audit whether the bundle's controllers enforce the host app's ACLs or inherit them implicitly.
  • Positive: MIT license, small code footprint, no obvious supply-chain concern.

Key questions

  1. Is the target application actually Laravel, or is there a separate Symfony service in the estate? This package is Symfony-only — the answer changes everything.
  2. If Symfony exists: which Symfony/PHP version, and is FSiAdminBundle genuinely the admin layer?
  3. What is the real requirement — up/down buttons on a flat ordered list, drag-and-drop, or a nested tree with depth and reparenting? These are three different data models.
  4. How is ordering currently stored — integer position, nested set, or materialized path?
  5. Who owns this code after 2020, and are we prepared to fork and maintain it?

Integration Approach

Stack fit. None for Laravel. The package expects a Symfony kernel, Doctrine ORM entities, Twig templates for the arrow controls, and FSiAdminBundle CRUD controllers as its extension point. Laravel's equivalents (service providers, Eloquent, Blade, resource controllers) have no correspondence at any layer.

Migration path. Do not migrate. Treat this as reference material and implement natively:

  • Add an integer position column (indexed) to the ordered model, or adopt spatie/eloquent-sortable for the sortable behavior if the requirement is a flat list.
  • If the requirement is genuinely hierarchical, use spatie/laravel-nestedset or kalnoy/nestedset rather than porting tree-move logic by hand.
  • Expose POST /admin/{resource}/{id}/move with direction validated as up|down, wrapped in a transaction, gated by policy/authorization middleware, and covered by feature tests for boundary conditions (first/last item, concurrent reorder).

Compatibility. Even a spike install will fail resolution against PHP 8.1+ and modern Symfony constraints. Any attempt to force it via --ignore-platform-reqs produces a dependency tree that cannot be bootstrapped.

Sequencing (if, and only if, a Symfony host is confirmed):

  1. Spike (1–2 days): install in a throwaway Symfony app matching the production version, confirm the bundle boots and the move actions render.
  2. Audit the bundle's controllers for ACL enforcement and transaction boundaries.
  3. Vendor/fork with a pinned commit and a documented patch process.
  4. Build regression tests around reordering before touching production data.

For the Laravel case, sequence is: confirm data model → migration → controller/policy → UI → tests. One sprint slice, no external dependency.

Operational Impact

Maintenance. Unmaintained for 5+ years with no releases, no security patching, and a stale upstream. Adopting it means accepting permanent ownership of a fork in a framework we don't run — the worst combination of low value and nonzero obligation.

Support. GitHub issues on a zero-star repository from a single vendor (FSi Open). No SLA, no commercial support, no community to escalate to. Internal expertise in the FSi bundle family is scarce and not a marketable skill.

Scaling. A non-issue either way: the feature is two admin actions on a single row. Performance impact is negligible; the concern is correctness, not throughput.

Failure modes

  • Silent no-op: package installed but never bootstrapped — appears to work until someone notices the buttons aren't there.
  • Template resolution failure (Twig paths not registered in a non-Symfony host).
  • Position corruption under concurrent reorders without row-level locking or a transaction.
  • Authorization gap if move endpoints don't inherit the host app's ACLs — a privilege-escalation path in an admin surface.
  • Composer resolution failures on PHP/Symfony version bumps, which block unrelated upgrades.

Ramp-up. Documentation is a README at best; an engineer would need working knowledge of Symfony DI, Doctrine event listeners, and Twig to even evaluate it. That ramp cost is spent on a component we would then discard.

Recommendation. Reject as a dependency; adopt as a specification. The functionality is small, well-understood, and cheaper to build natively in Laravel than to evaluate, fork, and maintain a framework-mismatched, abandoned Symfony bundle.

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