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

Classification Bundle Laravel Package

rz/classification-bundle

rz/classification-bundle adds a flexible taxonomy layer to Symfony/PHP apps, letting you define categories, tags and hierarchical terms, attach classifications to any entity, and query classified content through a simple, configurable API.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is a critical mismatch: rz/classification-bundle is a Symfony 2 bundle, not a Laravel package. It is built on Symfony's bundle conventions — DependencyInjection/*Extension, XML/YAML service definitions, an event-dispatcher-driven service graph, and Doctrine ORM mappings — and it exists specifically as an extension of SonataClassificationBundle, which itself sits inside the Sonata admin/ORM ecosystem. Laravel's container, service providers, Eloquent, and package discovery have no mechanical path to consuming this. There is no Laravel service provider, no facade, no config publish tag, and no Illuminate dependency anywhere. "Architecture fit" for a Laravel stack is effectively zero without a port.

Integration feasibility. Direct composer require into a Laravel app is not viable. The realistic options are (a) run a Symfony 2/Sonata service alongside Laravel and integrate over HTTP or a shared database, (b) port the classification domain (Category, Tag, Collection, Context taxonomy) into native Laravel models and services, or (c) adopt a maintained Laravel taxonomy package and reimplement the behavior. The bundle contains no novel algorithm or data model that cannot be reproduced; its value is configuration and Sonata wiring, which is not transferable.

Technical risk. High and concentrated in three areas. First, abandonment: the repository is archived with 0 stars and 0 dependents, meaning no active consumers, no issue triage, and no security patches. Second, version decay: a Symfony 2 bundle depends on PHP versions and Symfony components that are long past end-of-life; the transitive dependency graph will conflict with any modern Laravel application and is unlikely to resolve. Third, orphaned dependency: SonataClassificationBundle itself has moved on, so the extension is pinned to an old API contract. The 0.03 score is consistent with a package that is technically inert.

Key questions.

  • Is there any actual requirement to reuse Sonata/Symfony taxonomy behavior, or is the real need simply "categorize and tag content"?
  • Does the organization already operate a Symfony/Sonata service that must share classification data with Laravel?
  • What is the cost comparison between a 2–5 day native Laravel taxonomy implementation versus standing up and maintaining a legacy Symfony 2 bridge?
  • Who would own a fork, and is there a business reason to own it given 0 dependents?

Integration Approach

Stack fit. Poor to none for a Laravel target. The bundle assumes Symfony's kernel, bundle registration, container compilation, Doctrine entity managers, and Sonata's admin/block architecture. None of these have Laravel analogues that map one-to-one. Framing this as a "Laravel/PHP package" overstates its portability; it is PHP, but it is PHP bound to a different framework's lifecycle.

Migration path. Treat this as a reference implementation, not a dependency. The pragmatic path is: (1) enumerate the classification entities and relationships the bundle exposes (categories, tags, collections, contexts and their associations); (2) document the intended behavior and any configuration defaults; (3) implement equivalent Eloquent models, migrations, and service classes in Laravel; (4) backfill any existing data via a one-time ETL if a legacy Sonata instance holds records. This preserves the domain model while discarding the incompatible delivery mechanism.

Compatibility. Assume incompatibility by default. A Symfony 2-era bundle will not satisfy modern PHP constraints, and Composer will almost certainly fail resolution against a current Laravel application. Any attempt to force installation via --ignore-platform-reqs or repository overrides introduces an unmaintained code path into production — unacceptable for a TPM-owned system.

Sequencing. If the requirement is real, sequence it as: discovery of taxonomy requirements → decision record rejecting direct adoption with rationale → native Laravel design and implementation → data migration if applicable → deprecation/removal of any legacy Sonata dependency. Do not sequence this as "evaluate, then integrate"; the evaluation terminates at "do not integrate."

Operational Impact

Maintenance. The package is archived, so there is no upstream maintenance to inherit. Any adoption converts the organization into the sole maintainer of a dead Symfony 2 extension, which is a permanent tax with no offsetting benefit. A native Laravel implementation, by contrast, is maintained by the team against a framework the team already operates.

Support. There is no support channel: no maintainers, no issue activity, no dependents to consult. Internal support would rest entirely on whoever performed the port, creating a single-point-of-failure knowledge risk. This is a strong argument for the native reimplementation, where expertise is broadly held.

Scaling. Taxonomy data is low-volume and read-heavy; scaling is not the constraint. The scaling risk is organizational — every engineer who touches a legacy Symfony 2 bundle inside a Laravel estate pays a context-switching cost. The dependency also blocks PHP and framework upgrades, which is a compounding operational liability over time.

Failure modes. Expect Composer resolution failures at install, container compilation errors if forced in, Doctrine/Sonata schema conflicts, silent behavior drift as Sonata evolves away from the pinned version, and unpatched security exposure with no upgrade path. The most insidious failure is a partial install that appears to work in development and destabilizes during framework upgrades.

Ramp-up. For a Laravel team, ramp-up cost is effectively the cost of learning Symfony 2 bundle conventions, Sonata's admin layer, and Doctrine mapping — days to weeks for a capability that produces no reusable Laravel asset. For a team already fluent in Symfony 2 and Sonata, ramp-up is trivial but irrelevant, because the surrounding stack is end-of-life and the package is archived.

Recommendation. Do not adopt. Record the decision, extract the domain model as a design reference, and implement classification natively in Laravel. The 0.03 score, archived status, and 0 dependents are consistent with the technical reality; the 6.81 opportunity score should be read as an artifact of scoring relative to a near-empty field, not as a signal of latent value.

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.
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle