sylius/categorizer-bundle
Sylius Categorizer Bundle adds flexible categorization to Symfony and Sylius apps. Build hierarchical category trees, assign categories to any Doctrine entity, and manage categorized resources through reusable models, repositories, and UI integration.
Primary decision this informs: do not adopt. This assessment supports a negative build-vs-buy determination for catalog taxonomy/categorization functionality. The package is explicitly marked DEPRECATED, the repository is archived, it has 15 stars and zero dependents — meaning no production codebase of consequence is known to rely on it, and no upstream maintainer is obligated to patch it.
Where it still carries value for a PM:
What it should not support: any decision to add it to a dependency manifest, any spike that assumes it as a foundation, and any estimate that treats it as a solved problem.
One important framing correction for stakeholders: despite being filed alongside Laravel/PHP packages, this is a Sylius (Symfony) bundle, not a Laravel package. It is not drop-in for a Laravel codebase without adopting Sylius's underlying Symfony conventions. Any PM-level evaluation must account for that framework mismatch before the deprecation status even becomes the blocking issue.
Adoption criteria and disqualifiers, in order of weight:
Consider only if all of the following are true:
Look elsewhere in every other case. Specifically, disqualify it when any of the following apply — all of which are true here:
| Criterion | Assessment |
|---|---|
| Maintained / not deprecated | Fails — explicitly deprecated and archived |
| Security patch cadence | Fails — no maintainer, no disclosure path |
| Framework/runtime currency (PHP 8.x, current Symfony) | Fails — archived before modern versions |
| Adoption signal (dependents, ecosystem use) | Fails — zero dependents, 15 stars |
| Clear successor path | Available — Sylius core's own taxonomy/categorization facilities |
Where to look instead: Sylius core's built-in taxon/categorization support is the natural successor for Sylius-based work. For non-Sylius PHP stacks, evaluate actively maintained tree/hierarchy libraries (Doctrine tree extensions) or model taxonomy in-house — categorization is a well-understood domain where a small first-party implementation is usually cheaper than inheriting an unmaintained bundle's assumptions. Apply the standard bar to whatever we pick: recent commits, supported runtime versions, a disclosed security process, and meaningful downstream usage.
Threshold for revisiting: none. An archived repository with an explicit deprecation notice is not a candidate for re-evaluation; only a fork we own and staff would change the calculus, and forking a 15-star deprecated bundle is almost never the cheapest path.
To executives: We evaluated a catalog-categorization component for potential reuse. It is formally deprecated and archived upstream, has no active maintainer, and effectively no adoption across the ecosystem. Adopting it would create an unpatched dependency in our product catalog — a security, compliance, and hiring-risk exposure with no offsetting speed gain, since a modern equivalent is available and supported. Recommendation: no adoption; treat as reference material only. If any legacy system relies on it, we should budget remediation rather than defer it.
To engineering: Read it, don't import it. The bundle is a useful historical reference for how product-to-category relationships and hierarchy were modeled in the Sylius ecosystem, but the code is unmaintained and predates current PHP/Symfony support. Treat it as design input for a first-party taxonomy model or as confirmation that Sylius core's built-in facilities are the right successor. If we have existing references to it, flag them — we should have a named owner and a target date for removal, and I'd like the migration tracked rather than absorbed silently.
To product/design: This does not block categorization or merchandising features. It removes one "integrate and move on" option from the table early, which is the useful outcome — it means the taxonomy work gets scoped properly rather than assumed away, and it avoids a mid-flight dependency failure after launch.
One-line version: Deprecated, archived, zero dependents — not a dependency, but a useful reference and a cheaply closed decision.
Ask: Approve closing this as "evaluated, rejected," record it in the ADR log, and confirm whether any current system references it so we can schedule removal.
How can I help you explore Laravel packages today?