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.
This is a Symfony bundle, not a Laravel package. Before you install anything, confirm you actually need it: it is only useful if your application already runs Kunstmaan bundles on Symfony 2.x with Doctrine ORM. For a standard Laravel/Eloquent app, the day‑to‑day leverage is close to zero.
Minimal path if you are on the target stack:
composer require kunstmaan/tagging-bundle (note the last tagged release is from 2014, so expect to pin fabien-pennequin/doctrine-extensions-taggable and an old Symfony/Doctrine matrix).Kunstmaan\TaggingBundle\KunstmaanTaggingBundle in AppKernel.Tag entity and the taggable join mapping (or copy the mapping into your own entity).Taggable interface and using its trait.TagManager/form type rather than hand‑rolling tag rows.Where to look first:
Entity/Tag.php and Entity/TagRepository.php – the schema you will inherit.Helper/ / Manager/ services – the actual add/remove/lookup API.Form/ types – how tags are edited in the Kunstmaan admin.FabienPennequin/DoctrineExtensions-Taggable docs – the bundle is mostly glue around that library.First use case: attach tags to a content/page entity in a Kunstmaan admin, then expose a tag list or "related by tag" query. If you cannot name that exact use case, stop here and use spatie/laravel-tags instead.
Doctrine-first tagging. Every pattern assumes a Doctrine entity manager. In Laravel you would need laravel-doctrine/orm (or equivalent) plus a custom service provider that registers the bundle's services manually — the bundle has no Laravel provider. Budget time for this; it is usually more work than writing tags yourself.
Typical entity setup:
class Article implements Taggable
{
use TaggableTrait; // from DoctrineExtensions-Taggable
// Doctrine mapping for the tags collection is provided by the extension
}
Typical workflow:
Tag repository when you need tag clouds, counts, or autocomplete.Integration tips:
Tag to an Eloquent model with a polymorphic taggables pivot and a TagService. That is ~100 lines and removes the Symfony/Doctrine dependency entirely.TagManager service alias so you can swap the implementation later without touching call sites.type/context column yourself if you need separation.Tag vs tag vs Tag produces one row; add a unique index and normalize on write.tag and the taggable join table explicitly, and check the join table name against what the extension expects — a mismatch fails silently at persist time.Tag row. Add a cleanup job or an explicit repository method; otherwise your tag cloud grows stale entries.Tag entity and the tag manager service in Symfony DI, but not much else — the bundle is thin glue over DoctrineExtensions-Taggable.spatie/laravel-tags for polymorphic Eloquent tagging, or implement a small tags + taggables pair. You will get better maintenance, native Eloquent queries, and no Doctrine bridge.How can I help you explore Laravel packages today?