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

Api Platform Workflow Extension Laravel Package

wesnick/api-platform-workflow-extension

Integrates Symfony Workflow with API Platform by exposing workflow transitions as REST operations, letting clients move resources through workflow states via configurable endpoints with guard and access-control support.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The first thing to flag is a stack mismatch in the brief: this is a Symfony bundle, not a Laravel package. api-platform/core and symfony/workflow are both first-party Symfony components, and the bundle exists solely to bridge them — it has no Laravel equivalent path. If our reference stack is Laravel, architectural fit is effectively zero at the code level and the package is valuable only as a design reference. If we run Symfony services, fit is materially better: API Platform has no native state-machine concept, so mapping workflow transitions onto API resource operations and guarding them by marking state is a real, recurring gap. That said, the bundle is thin glue — nearly all behavior lives in the two upstream components, both of which are maintained independently.

Integration feasibility. Low to moderate. The repository is archived, sits at 11 stars, and offers no evident support matrix. Before any spike we would need to read composer.json directly to establish pinned constraints on PHP, symfony/workflow, and api-platform/core. The integration surface is precisely the area that churns most between API Platform majors (operation definitions, metadata factories), so feasibility is version-conditional rather than categorical.

Technical risk: high.

  • Archived status means no security patches, no compatibility work for current API Platform releases, and no PHP runtime guarantees.
  • Single-maintainer provenance and negligible adoption imply a low bus factor and almost no third-party bug discovery — we would become the QA function.
  • The pattern it encodes (state transitions as first-class API operations) is sound and widely needed; the artifact encoding it is not durable.
  • Blast radius is contained, however: the dependency is shallow and the domain logic it touches is ours, so exit cost is low.

Key questions.

  1. Is our target stack Symfony + API Platform at all, or Laravel/other? A "no" ends the evaluation.
  2. What versions of api-platform/core, symfony/workflow, and PHP does it constrain, and are those still receiving security support?
  3. Can we reproduce the core behavior — expose transitions as API operations, authorize by current state — in-house within one or two sprints?
  4. Is a state machine genuinely the right model for this domain, or are we adopting a pattern because a package surfaced it?
  5. What does the license permit regarding vendoring and forking into our namespace?

Integration Approach

Stack fit. If Laravel: do not integrate. Use spatie/laravel-model-states or a small hand-rolled transition service, expose transitions as explicit endpoints rather than generic PATCHes, and enforce legality through policies. If Symfony: skip the bundle and build directly on symfony/workflow — first-party, maintained, and already in our dependency tree in most cases — adding roughly 150–300 lines of operation decorators and voters. That captures the large majority of this package's value with none of the archival exposure.

Migration path. (1) Spike in a scratch application, not the main repo. (2) Model one realistic workflow end to end (draft → review → published) to confirm the bridge actually saves effort. (3) Decide explicitly between fork-and-vendor and clean reimplementation, and record the decision. (4) If forking, vendor under our namespace with a named owner and a written upgrade runbook.

Compatibility. Verify against our exact PHP runtime, Symfony LTS line, and API Platform major. The defensible default is to assume incompatibility with anything released after the archive date until demonstrated otherwise in the spike.

Sequencing. Design the state model and authorization rules first — those are the expensive, durable decisions and they are framework-agnostic. Implementation is the cheap part and should follow. Do not let a package's shape drive the domain model; that inversion is the most common way this class of dependency becomes expensive.

Operational Impact

Maintenance. We own it outright. Archived means zero upstream responsiveness. Either fund an internal fork with an owner, test coverage, and a fork policy, or treat the repo as read-only reference material and build natively.

Support. No community, no issue triage, no CVE channel. Every defect, however small, becomes an internal ticket competing with product work.

Scaling. Runtime cost is negligible — this is metadata and decorator glue, not a hot path. The scaling concern is organizational: each API Platform upgrade becomes a manual audit of a dependency nobody else is exercising.

Failure modes. Silent 500s from metadata incompatibility after a framework bump; transitions exposed without corresponding voter or policy checks, which is a privilege-escalation path on state changes; marking-store drift if workflow state is persisted through an unexpected backend; breakage on minor version upgrades with no upstream fix available.

Ramp-up. Individual learning curve is low for anyone fluent in Symfony Workflow and API Platform — a day or two. Organizational cost is the real number: roughly one sprint to evaluate and fork, then an ongoing 5–10% of one engineer absorbed by upgrade churn and orphan maintenance.

Recommendation. Do not adopt as a runtime dependency. Harvest the pattern and implement it natively on the maintained Workflow component (Symfony) or an equivalent (Laravel). Revisit only if the repository is un-archived and acquires an active maintainer.

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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums