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

Tagging Bundle Laravel Package

kunstmaan/tagging-bundle

KunstmaanTaggingBundle adds reusable tagging to Symfony and Doctrine projects: attach tags to entities, manage tags in the admin, and query or filter content by tag. It integrates with Kunstmaan CMS bundles and provides a lightweight foundation for tag-based navigation and search.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit — poor, with a naming caveat. Despite the prompt's framing as a "Laravel/PHP package," kunstmaan/tagging-bundle is a Symfony bundle, not a Laravel package. It is a thin integration layer that wires FabienPennequin/DoctrineExtensions-Taggable into the Kunstmaan CMS bundle family. If our target stack is Laravel (Eloquent, service providers, Blade), there is zero architectural fit — the package assumes Symfony's bundle registration, Doctrine ORM, and the Kunstmaan NodeBundle/PageBundle entity model. If our stack is a legacy Symfony 2.x Kunstmaan CMS instance, the fit is decent by construction, but only for that narrow context.

Integration feasibility — low. The package last released in April 2014, targeting Symfony 2.x and PHP 5.3–5.4-era idioms. Modern Symfony (5/6/7) and PHP 8.x will reject its service definitions, type hints, and deprecated Doctrine calls. The underlying DoctrineExtensions-Taggable is itself effectively superseded by stof/doctrine-extensions-bundle (which ships its own Taggable). So the package is two abandoned layers stacked: Kunstmaan glue on top of an unmaintained Doctrine extension. With 10 stars and 0 dependents, there is no observable production usage to borrow confidence from.

Technical risk — high. Specific hazards:

  • Unmaintained & unpatched: no security or compatibility releases in over a decade; no CVE response path.
  • Dead dependency chain: FabienPennequin/DoctrineExtensions-Taggable is not actively maintained; composer resolution against modern Symfony/Doctrine will likely fail or require aggressive replace/fork workarounds.
  • Data model weakness: the Taggable behavior stores tags denormalized (typically a delimited string column), meaning tag queries are LIKE-based, individual tags are unindexed, there is no referential integrity, and tag normalization (case/whitespace) is inconsistent.
  • Scoring signal: composite score 0.33 with opportunity 6.22 reads as "real problem space, weak artifact" — the need for tagging is legitimate, but this specific package is not the vehicle.

Key questions a TPM must answer before engagement:

  1. What is the actual host stack? Laravel → reject immediately and pivot to spatie/laravel-tags or a custom polymorphic tag model. Legacy Kunstmaan/Symfony 2 → this package is a candidate but a decaying one.
  2. What is the tagging requirement? Freeform folksonomy (cheap, denormalized string is fine) vs. curated taxonomy with rename/merge/reporting (requires a normalized tag entity + join table). The Taggable string model only serves the former well.
  3. Build vs. fork vs. buy? The bundle is ~glue code; a first-party tag entity with a polymorphic many-to-many is likely <200 LOC and fully owned.
  4. Is there an existing content corpus? If tags already exist in a delimited column, migration to a normalized model is a data project, not a code project.
  5. What does "leverage" mean here? Realistically: use it as a reference implementation for how to wire taggable behavior into Doctrine entities, not as a runtime dependency.

Integration Approach

Stack fit. Treat this as a Symfony-only, Doctrine-only artifact. Under Laravel it is a non-starter: the bundle's service container wiring, annotation-driven entity config, and Kunstmaan-specific interfaces have no Eloquent analogue. Even under Symfony, fit is limited to Kunstmaan CMS deployments. Under a generic Symfony app, stof/doctrine-extensions-bundle's Taggable is the direct, maintained substitute — the Kunstmaan bundle adds little beyond CMS-specific entity hooks.

Migration path. Two viable routes:

  • From this package outward (recommended): If currently depending on it, plan a replacement migration — either adopt stof/doctrine-extensions-bundle Taggable (same underlying model, maintained), or migrate to a normalized Tag entity + TaggableJoin table. The normalized route is the durable path; the extensions route is the lower-effort stopgap.
  • Into this package: Advise against. Any greenfield effort should not adopt a 2014 bundle with no dependents.

If migrating the data model, sequence: (1) audit existing tag columns and normalization quirks; (2) introduce the new normalized schema alongside; (3) dual-write; (4) backfill and reconcile; (5) cut reads over; (6) retire the Taggable column.

Compatibility. Assume incompatibility by default and verify explicitly:

  • Pin Symfony and Doctrine versions in a spike branch before committing.
  • Check PHP 8.x fatal errors (old-style constructors, missing return types, deprecated Doctrine\ORM\Mapping annotations).
  • Confirm Composer can resolve FabienPennequin/DoctrineExtensions-Taggable against our constraint set; if not, a replace directive pointing at a forked package is required — which is a maintenance commitment, not a fix.

Sequencing for a TPM-led evaluation:

  1. Stack confirmation (1 day) — Laravel vs. Symfony, version matrix.
  2. Requirement clarification (2–3 days) — folksonomy vs. taxonomy, query/reporting needs, volume.
  3. Spike (1 week) — attempt install in a sandbox; document every incompatibility. Expect failure under modern stacks; capture as evidence.
  4. Alternatives bake-off — spatie/laravel-tags (Laravel), stof/doctrine-extensions-bundle Taggable (Symfony stopgap), custom normalized model (both).
  5. Decision record — document why this package is or isn't adopted, with the score and abandonment evidence as rationale.

Operational Impact

Maintenance. Effectively zero upstream maintenance. Any fix — PHP 8 compatibility, Symfony 6 support, security patch — becomes our burden via fork. That converts a "dependency" into an owned codebase with a maintenance tax disproportionate to its ~hundreds of lines of glue. Factor fork stewardship into the total cost of ownership; it is rarely justified for glue code.

Support. No vendor, no maintainer responsiveness, no issue tracker velocity (10 stars, 0 dependents means no community to answer questions). Internal ramp-up requires code archaeology — reading the bundle and its dependency to infer behavior, since documentation is sparse and predates current Symfony conventions. Expect 1–2 engineer-days just to understand the Taggable string model and its normalization edge cases.

Scaling. The denormalized Taggable model does not scale gracefully:

  • Tag-filtered queries degrade to LIKE '%tag%' scans; no per-tag index.
  • Tag rename/merge is an UPDATE ... REPLACE across the corpus — expensive and error-prone at volume.
  • No referential integrity means orphaned/garbage tags accumulate silently.
  • Aggregations ("top tags," "co-occurrence") require application-side parsing of the delimited column.

For high tag cardinality or reporting requirements, this is the wrong model regardless of package health.

Failure modes to monitor:

  • Composer resolution failure on modern PHP/Symfony — the most likely first failure.
  • Runtime fatals from deprecated Doctrine/Symfony APIs after any framework upgrade.
  • Silent data corruption from inconsistent tag normalization (trailing spaces, case variants creating duplicate logical tags).
  • Migration drift — doctrine:migrations:diff misbehaving against annotation-mapped taggable fields on newer Doctrine.
  • Bus-factor one — no one on the team will have prior exposure; knowledge must be built, not hired.

Ramp-up. Low code surface, high ambiguity. The package itself is small, but the dependency (FabienPennequin/DoctrineExtensions-Taggable) and the host (Kunstmaan CMS) each carry their own learning curve. For a team on Laravel, ramp-up is moot because integration is infeasible. For a legacy Kunstmaan team, ramp-up is 2–3 days to productive, with ongoing fork-maintenance overhead.

TPM recommendation. Do not adopt as a runtime dependency on any modern stack. Its value is as a reference pattern for taggable Doctrine entities and as a migration trigger — if we are on it, this is the moment to consolidate onto a maintained Taggable implementation or a first-party normalized tag model. The 0.33 score and 2014 last-release date are the decision, not a detail to work around.

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.
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log