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

Easyadmin Tree Bundle Laravel Package

umanit/easyadmin-tree-bundle

Umanit EasyAdmin Tree Bundle adds hierarchical tree views to Symfony EasyAdmin. Display parent-child entities as an expandable tree, reorder nodes with drag and drop, and manage nested records directly in your admin backend. Ideal for categories, pages, menus, and other self-referencing entities.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Despite the brief framing, this is not a Laravel package — it is a Symfony bundle (umanit/easyadmin-tree-bundle) that extends EasyAdmin's CRUD controllers to render and manipulate hierarchical entities (category trees). It assumes Symfony's bundle registration model, Doctrine ORM entities, and EasyAdmin 4.x controller/field conventions. If the target codebase is Laravel, there is no adapter path beyond reimplementing the same UX (nested-set trait like kalnoy/nestedset plus a custom admin screen). If the target is Symfony + EasyAdmin, the bundle is architecturally shallow and additive — it sits on top of AbstractCrudController and does not alter core framework behavior, which keeps blast radius small.

Integration feasibility. Mechanically straightforward: Composer require, register in config/bundles.php, extend the tree CRUD controller, declare the tree field in configureFields(), and ensure the bundle's JS/CSS assets are published or wired into the asset pipeline (Webpack Encore or AssetMapper). Real effort is not code volume but version alignment — the bundle must match the hosting app's EasyAdmin minor version, and the entity must already model hierarchy (adjacency list or nested set).

Technical risk. This is the dominant concern. 23 stars, a single-maintainer profile, and a last release of 2022-10-28 mean the package has not tracked EasyAdmin's evolution (field-configuration API changes, asset/Stimulus rework, Symfony 6.4/7.x deprecations). Dependency rot, not feature gaps, is the failure vector. There is no evidence of a security-review process, and community support is best-effort only. Treat it as sample code you adopt rather than a vendor-supported dependency.

Key questions.

  • What EasyAdmin major/minor is pinned, and does the bundle's Composer constraint actually admit it?
  • Which tree strategy is assumed — nested set, adjacency list, or Gedmo Tree — and does our schema match?
  • Is drag-and-drop reordering a hard requirement, or is parent-select sufficient?
  • Do we need multi-tree scoping, i18n, or per-role visibility on the tree?
  • Who owns the fork when EasyAdmin's next minor breaks it?
  • What is the license, and has anyone audited the asset/JS payload?

Integration Approach

Stack fit. Green-light only for Symfony 5.4/6.x + Doctrine ORM + EasyAdmin 4.x applications where category hierarchies are an admin-side convenience, not a core domain capability. For Laravel shops, reject the package and scope an equivalent: nested-set trait on the model, a Livewire/Filament or Nova tree view, and a reorder endpoint. Same product outcome, no orphaned dependency.

Migration path. Do not retrofit into a live admin. Spike on a branch: install the bundle against the app's exact EasyAdmin version, build one tree CRUD for a real entity, and exercise create/move/delete end to end. If the spike passes, vendor the package (fork under our org, tag an internal version), because upstream release cadence cannot be relied on. If it fails on version constraints, the fork-and-patch path is usually 1–3 days — cheaper than rebuilding the UI, but only if the tree schema already exists.

Compatibility. Verify PHP constraint, Symfony constraint, EasyAdmin constraint, and the Doctrine tree extension in use. The 2022 release date makes EasyAdmin 4.4-era compatibility most likely; later 4.x lines changed field and asset APIs. Check that the front-end assets build under the app's current pipeline — this is the most common silent breakage.

Sequencing.

  1. Confirm schema supports hierarchy; add parent/position columns or nested-set fields with a backfill migration.
  2. Land the read-only tree view first (no reordering) to validate rendering and permissions.
  3. Add reordering behind a feature flag; wrap tree mutations in transactions.
  4. Add authorization hooks (reorder is a privileged action) and audit logging.
  5. Only then expose to production editors, with a rollback plan to the flat list view.

Operational Impact

Maintenance. Budget ongoing internal ownership: roughly 2–4 engineer-days per quarter to track EasyAdmin and Symfony upgrades, plus ad-hoc fixes. This is a fork-in-all-but-name; plan the repo, CI, and a named maintainer before adoption.

Support. No SLA, no vendor, stale issue tracker. Escalation is internal. That is acceptable for an internal admin tool and unacceptable anywhere the tree drives customer-facing navigation.

Scaling. Tree reads are cheap; reordering writes are the cost center. Nested-set updates touch multiple rows per move and must be transactional. Comfortable to roughly 10k nodes with drag-and-drop; beyond that, expect slow saves and consider lazy-loaded subtrees or a dedicated ordering service. Full-tree client-side rendering also degrades on very large catalogs.

Failure modes.

  • EasyAdmin minor upgrade breaks the tree field or its JS bundle — admin page fails to render or silently loses drag-and-drop.
  • Non-transactional reorder corrupts hierarchy, producing orphaned or cyclic nodes; recovery requires a rebuild script.
  • Asset pipeline mismatch (Encore vs AssetMapper) yields an unstyled, non-interactive tree.
  • Permission gaps let non-admin roles reorder the taxonomy.
  • Abandonment: no upstream fix for a future EasyAdmin incompatibility.

Ramp-up. A Symfony developer already fluent in EasyAdmin needs 1–2 days to be productive, most of it spent reading bundle internals to understand the tree contract. A developer new to EasyAdmin needs 3–5 days, and should not be the sole owner. Document the tree schema, the reorder transaction boundary, and the fork/upgrade procedure as part of the adoption deliverable — those three artifacts are what keep this from becoming tribal knowledge.

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