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

Taxonomy Bundle Laravel Package

enhavo/taxonomy-bundle

Taxonomy bundle for the Enhavo CMS, providing flexible category and tag management on top of Symfony. A subtree split of the main Enhavo repository; see the main project for documentation and support.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The single most important finding is a stack mismatch: enhavo/taxonomy-bundle is a full-stack Symfony bundle, not a Laravel package. It is designed to be registered through Symfony's Kernel, wired via DI service definitions and compiler passes, and mapped through Doctrine ORM. Laravel consumes a subset of Symfony components (Console, HttpFoundation, Routing, VarDumper), but it does not run a Symfony kernel or bundle registration pipeline, so the bundle cannot be composer required into a Laravel app and "just work." The repository description ("[READ-ONLY]... a subtree split of the main repository") confirms this is a publishing artifact of the Enhavo CMS monorepo, not an independently maintained library. Fit with a Laravel codebase is therefore effectively zero at the framework level; the only transferable asset is the domain model — how taxonomies, terms, and their associations are structured — which can be read as a reference design.

Integration feasibility. Low. Three compounding factors: (1) the package has 0 stars, 0 dependents, and a maturity rating of "readme," meaning there is no documentation, no surfaced test suite, no release notes, and no external consumer validating it in the wild; (2) a subtree split inherits the monorepo's versioning and history, so tags can move and the split has no independent issue tracker or contribution path; (3) the bundle almost certainly depends on Enhavo core bundles and Doctrine entities rather than standing alone, which means an install attempt drags in a large transitive dependency graph built for a CMS you are not running. The realistic assessment is that this is not integrable as a dependency into a Laravel product — it is at best a design reference and at worst a source of confusing composer conflicts if trialed.

Technical risk.

  • Vendor concentration. One organization maintains both the monorepo and the split; there is no community backstop. If Enhavo reworks its taxonomy layer, the split changes under you.
  • Unversioned surface. No evidence of semantic-versioning discipline or a stability commitment on the split itself.
  • Hidden coupling. Doctrine entity mappings, repository classes, and admin UI hooks are likely bound to Enhavo's admin stack, so the useful logic is entangled with the unusable parts.
  • Security and patch latency. Any vulnerability in the transitive Symfony/Doctrine graph becomes yours to track, with no dependents to amplify disclosure.

Key questions for the maintainers or an internal spike.

  1. What exactly is the taxonomy data model — flat term lists, hierarchical trees, or multi-vocabulary? Are term-to-entity associations polymorphic?
  2. Is the bundle usable standalone (bare Symfony app) or does it hard-require EnhavoCoreBundle and the admin stack?
  3. What are the pinned PHP, Symfony, and Doctrine version constraints, and how frequently do split tags track the monorepo?
  4. Are Doctrine migrations shipped, or are they managed centrally in the monorepo?
  5. Is there any API/serialization layer for taxonomy data, or is access strictly through PHP services?
  6. Does the MIT license plus "read-only" status permit vendoring/forking for internal use (it does, but confirm no trademark or branding constraints on the admin UI)?

Integration Approach

Stack fit. PHP and Composer are shared, and Doctrine ORM is available in both ecosystems, but that is where the overlap ends. A Laravel application is Eloquent-first; adopting this bundle would mean either (a) introducing Doctrine ORM alongside Eloquent purely for taxonomy, or (b) translating the schema into Eloquent models and migrations. Option (a) creates a permanent dual-ORM maintenance burden for a single bounded feature — a poor trade. Option (b) discards nearly all of the package's code and retains only the schema, which raises the question of why the dependency exists at all.

Migration path. Three viable routes, in descending order of pragmatism:

  1. Reference-only (recommended). Treat the bundle as documentation of a taxonomy schema. Extract the table shape (vocabularies → terms → term hierarchy → polymorphic associations), then implement natively in Laravel with Eloquent models, migrations, and existing community packages for tree behavior and tagging.
  2. Sidecar service. If Enhavo is already in the estate, run it as a separate Symfony application and expose taxonomy over HTTP or a shared database. This preserves the CMS investment but adds a network hop, a second runtime, and a distributed-transaction problem for content writes.
  3. Direct port. Fork the bundle, strip the Enhavo core and admin dependencies, and reimplement the service layer as Laravel providers. Highest cost, highest fidelity, and it makes you the permanent maintainer of an orphaned fork.

Compatibility. Pin to an exact commit SHA rather than a version constraint if any evaluation install occurs, since split tags are not a stable contract. Verify PHP minor version and Symfony/Doctrine major version alignment against the Laravel version in use before writing any spike code.

Sequencing. (1) Two-day discovery spike: read the monorepo taxonomy source, document the model, confirm dependency weight. (2) Build-versus-port decision gate with an explicit cost estimate for native reimplementation. (3) If porting, extract and freeze the schema. (4) Implement models, migrations, and the admin surface in Laravel. (5) Backfill or migrate any existing taxonomy data. (6) Cut over behind a feature flag and decommission the spike branch. Do not begin with a composer install attempt — it will consume time and produce nothing reusable.

Operational Impact

Maintenance. The team absorbing this package becomes the de facto maintainer. With 0 dependents there is no upstream community applying pressure to keep it healthy, and the subtree-split model means meaningful fixes must be proposed against the monorepo — where the split's read-only status gives you no local issue history. Budget ongoing effort for dependency updates and for re-diffing the split against the monorepo to catch silent changes.

Support. Documentation is a marketing paragraph about the Enhavo CMS plus a pointer to the main repository. There is no usage guide, no migration guide, and no API reference. Support is best-effort through Enhavo's channels, which for a TPM translates to an unquantified escalation risk rather than an SLA. Any production dependency on this package should carry an explicit internal-ownership assumption in the risk register.

Scaling. Taxonomy itself is a read-heavy, highly cacheable concern and is unlikely to be the system bottleneck. The scaling risks are indirect: hierarchical term queries can produce recursive joins that degrade under deep trees, and polymorphic term associations often resist clean indexing. In the sidecar topology, scaling adds a service to operate and a cache-coherence problem between the CMS and the consuming application.

Failure modes. Composer dependency resolution conflicts on install; silent breakage when the monorepo rewrites history or re-tags the split; orphaned database tables and polymorphic association rows if the package is removed without published down-migrations; large transitive dependency surface widening the CVE exposure; and the classic orphan-package failure where a PHP minor version bump leaves the split permanently behind. The highest-probability failure is simpler still: a spike that assumes Laravel compatibility, installs the bundle, and discovers the Symfony kernel dependency after the sprint has been committed.

Ramp-up. A Laravel-oriented team faces a real learning curve to read this codebase productively: Symfony bundle conventions, DI compiler passes, Doctrine entity mapping, and Enhavo's own core abstractions. Estimate several days before any engineer can confidently assess the taxonomy logic, versus roughly a day to specify an equivalent native Laravel implementation. Given the 0-star, 0-dependent, readme-only maturity profile, the defensible TPM recommendation is do not adopt as a dependency; mine it for schema and domain insight only, and build the taxonomy capability natively unless Enhavo is already a committed platform in the estate.

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.
unabomber/timezone
delatbabel/contacts
astritzeqiri/g-recaptcha
kevinongko/laravel-genode
developeruz/laravel-analytics
robbiep/afterthedeadline
frankkessler/incontact-laravel-oauth2-rest
jlxh/laravel-userlog
davidmgilo/timetables
qylinfly/role-permission
reflect-digital/conduit
takashato/laravel-vietqr
aitor24/laralang
kraenzle-ritter/entity-relations
dindigital/din-image
pomirleanu/image-colors
sawmainek/laravel-api-generator
delatbabel/jsonresponses
mouhamedfd/permissions-generator
eduplus/qr