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

Fork Sonata Project Classification Bundle Laravel Package

paysera/fork-sonata-project-classification-bundle

A Paysera-maintained fork of the Sonata ClassificationBundle for Symfony, providing taxonomy and classification management for categories, tags, collections, and contexts, with Sonata Admin integration for organizing and reusing content classifications.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Taxonomy and content organization features: this bundle supplies the data model and admin CRUD for the classic Sonata classification primitives — Tag, Category, Collection, Context, plus media association. That maps directly to roadmap items like content tagging, category hierarchies for navigation, curated collections/playlists, and per-context (per-site/per-channel) taxonomies.
  • Build vs. buy on a commodity capability: categorization is undifferentiated heavy lifting. Adopting an existing bundle is the "buy/reuse" answer and lets the team spend its roadmap budget on discovery, search relevance, and editorial workflows instead of entity CRUD.
  • Admin-surface decisions: because it ships Sonata Admin integration, it effectively decides that editorial taxonomy management lives inside the existing Sonata back office rather than a new tool — a meaningful UX and support-cost decision for content ops.
  • Data model lock-in decision: choosing these entities sets your schema for filtering, faceted search, sitemaps, related-content, and migration paths. This is a one-way-ish door and should be treated as an architecture decision, not a dependency add.
  • Fork governance decision: the artifact under review is a Paysera fork, not upstream sonata-project/SonataClassificationBundle. The real PM decision is "do we depend on upstream, on this fork, or on neither" — i.e., a maintenance-ownership and patch-strategy choice.
  • Scope/stack reality check: despite being framed as a Laravel/PHP package, this is a Symfony + Sonata bundle. It supports decisions only for Symfony/Sonata products; for a Laravel codebase it supports no delivery decision and should be closed out early.
  • Not supported: greenfield API-first/headless products, multi-tenant SaaS taxonomy with heavy custom rules, or anything needing a modern, actively maintained tagging service.

When to Consider This Package

Consider it only when all of the following hold:

  • The product is a Symfony application already running Sonata Admin (and generally Sonata's block/classification family). The bundle's value is largely the admin wiring, which is worthless outside that stack.
  • You need a conventional, hierarchical taxonomy (categories with parents, free-form tags, curated collections, per-context scoping) and have no differentiating requirements — no per-tenant vocabularies with custom permissions, no ML/auto-tagging, no graph relationships.
  • You are willing to own the code: MIT license permits vendoring/forking, and your team accepts patching it yourselves. Treat it as source code you adopt, not a dependency you consume.
  • You can pin and audit the fork diff against upstream, or you deliberately choose upstream instead and only borrow this fork's patches.
  • Your Doctrine/Symfony/PHP versions are already validated against it — there is no active release cadence to rely on for compatibility fixes.

Look elsewhere (or build) when:

  • You are on Laravel or any non-Symfony framework — use spatie/laravel-tags, kalnoy/nestedset, or an equivalent; this bundle is not applicable.
  • You need active maintenance, security response, or version support. This artifact is archived, 0 stars, 0 dependents — effectively zero community signal and no upstream safety net. That is a hard stop for a production-critical path.
  • You want API-first / headless taxonomy (JSON:API, GraphQL, decoupled storefront). The bundle is admin/ORM-centric and will fight you.
  • You need search-native taxonomies (Elasticsearch/Meilisearch facets, synonyms, merchandising rules) — better served by the search platform's own vocabulary model or a thin custom layer.
  • You'd be the only consumer of a fork with no maintainer — the total cost of ownership (upgrades, security, bus factor) exceeds writing a small, purpose-fit taxonomy layer.

How to Pitch It (Stakeholders)

For executives (one paragraph): This is a free, MIT-licensed component that provides standard content-organization features — categories, tags, curated collections — inside an existing Symfony/Sonata admin. It is a reuse play that avoids building commodity CRUD, so it can shorten time-to-market for editorial and content-discovery features. The catch is material: the specific artifact is an archived third-party fork with no stars, no dependents, and no visible maintainer, so it carries ongoing ownership cost and upgrade risk. Recommendation: do not adopt it as a strategic dependency. Approve it only as an accelerator inside a Sonata-based product where we explicitly budget for owning the code; otherwise fund a small in-house taxonomy layer (roughly days, not weeks, of engineering) and keep our options open.

For engineering (summary):

  • What it is: Sonata's classification bundle (Tag/Category/Collection/Context + admin) under a Paysera fork; Symfony-only, Doctrine ORM-based. Not applicable to Laravel.
  • Health: archived, zero stars, zero dependents, no release or compatibility guarantee. Expect to be the maintainer.
  • Integration cost: low if already on Sonata Admin; high-to-blocking if not (you inherit Sonata Admin, block bundle, and their upgrade treadmill for one feature).
  • Ask: before any adoption, (1) diff the fork against upstream and document the delta, (2) confirm Symfony/PHP/Doctrine version compatibility with our current stack, (3) decide fork-vs-upstream-vs-in-house, and (4) if adopted, vendor it into our repo with a named owner. Default position is reference implementation / pattern to copy, not a live dependency.
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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource