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

Doctrine State Machine Laravel Package

kphoen/doctrine-state-machine

Bridges Symfony's StateMachine component with Doctrine ORM, letting entity state transitions be validated and applied automatically during persistence. Configure a state machine for an entity and Doctrine listeners enforce allowed transitions, keeping workflow state consistent and domain models clea...

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Workflow and lifecycle modeling: Informs how product teams encode state transitions for orders, subscriptions, onboarding, KYC, approvals, content moderation, and fulfillment. The package’s entity-centric finite state machine (FSM) approach supports decisions about where transition rules live—domain entities vs. a dedicated workflow service.
  • Build vs. buy vs. reuse: Serves as a reference point when evaluating whether to add a lightweight FSM library, adopt a workflow engine such as Symfony Workflow, or build a small transition service with guards, permissions, and audit logging.
  • Legacy modernization scope: Useful for estimating the effort to replace deprecated Doctrine behavior with a maintained workflow abstraction in existing Symfony/Doctrine services.
  • Feature gating and permissions: FSM concepts map directly to product decisions around which roles can trigger which transitions, what states are terminal, and which transitions require approvals or side effects.
  • Roadmap risk assessment: Any product plan depending on this package should be treated as a dependency-risk item because it is marked deprecated, has 14 stars, no dependents, and no release since 2015.
  • Laravel fit: This is a Doctrine2 package, not an Eloquent-native Laravel package. For typical Laravel products, it is a poor architectural fit and should not drive roadmap decisions; Eloquent-native state machine options or a small in-house transition layer are more appropriate.

When to Consider This Package

Consider it only when all of the following are true:

  • You are maintaining an existing Doctrine 2 / Symfony legacy application that already uses this behavior or a closely related pattern.
  • The team needs a minimal, entity-embedded FSM and cannot introduce Symfony Workflow or a dedicated transition service.
  • The runtime remains on an older PHP version compatible with the package, and there is no near-term PHP 8+ requirement.
  • The workflow is simple—linear or lightly branching transitions with basic guards—and does not require rich audit trails, asynchronous side effects, or multi-tenant workflow configuration.
  • Security and compliance reviews accept a frozen, unmaintained dependency because the blast radius is limited and contained.

Look elsewhere when:

  • You are starting a new Laravel or Symfony product.
  • You use Eloquent rather than Doctrine.
  • You need active maintenance, security patches, PHP 8+ support, or community backing.
  • Workflows require audit logging, role-based transition guards, events, notifications, or complex branching.
  • You need a supported migration path or long-term vendor confidence.

Reasonable alternatives include Symfony Workflow, a small in-house transition service built around enums and domain events, or actively maintained Laravel state machine packages such as Spatie model states.

How to Pitch It (Stakeholders)

Executive summary: Do not adopt this package as a core dependency. It is explicitly deprecated, has negligible adoption (14 stars, 0 dependents), and has had no release since 2015. The product risk—unmaintained code in a critical workflow path—outweighs any short-term convenience. Treat it as a historical reference for entity-centric state machines, not as a platform choice.

For engineering: If we need FSM capability, budget for either Symfony Workflow or a small, well-tested in-house transition service with explicit guards, transition events, audit logging, and PHP 8+ compatibility. Avoid embedding workflow rules directly in Doctrine entities unless the domain is genuinely simple and the long-term maintenance cost is accepted.

For product: Workflow features—order lifecycles, approvals, onboarding, subscription states—should be scoped independently of this package. Do not let roadmap commitments depend on a deprecated dependency. Decision: reject for new work; retain only in legacy systems where it already exists, with a documented migration plan.

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.
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
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core
nodisrupt/laravel-agent
sierratecnologia/media-manager