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 Config Converter Bundle Laravel Package

gheb/api-platform-config-converter-bundle

Symfony bundle for converting API Platform configuration between formats, making it easier to migrate legacy YAML, XML, or annotation-based resource definitions to modern PHP attributes while reducing manual rewrite work. Useful when upgrading API Platform projects.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit The package is a Symfony bundle, not a Laravel package — a critical framing correction to the brief. It ships a Bundle class and DI extension and depends on Symfony's kernel and API Platform's metadata/config subsystems. Its intended architecture fit is a Symfony application running API Platform, where it acts as a build-time codemod: it reads resource configuration expressed in one format (historically YAML/XML/annotations) and emits another (typically PHP attributes in the API Platform 3+ era). It is not a runtime library, not a request-path component, and has no place in a Laravel service container. For a Laravel codebase, architecture fit is effectively nil unless API Platform is used via its own Laravel integration — and even then, a Symfony bundle's wiring assumptions make direct installation impractical.

Integration feasibility Feasible only as a one-shot, throwaway toolchain step, not as a Composer dependency we keep. The realistic path is: fork the repository, install it in an isolated branch or sandbox app, run the conversion, review the generated diff, hand-remediate, and remove the package from composer.json before merge. Because the repo is archived, 17 stars, 0 dependents, there is no evidence of production usage, no issue history to mine for known failure modes, and no compatibility guarantee against our PHP/Symfony/API Platform versions.

Technical risk

  • Archived / unmaintained: no security patches, no PHP or Symfony version ceiling raises, no API Platform 4 readiness. Compatibility constraints will likely pin us to older majors.
  • Semantic loss on conversion: formats are not isomorphic. YAML/XML can express constructs that attributes express differently (nested operation blocks, filter arguments, serialization groups, security expressions). Silent omission is the dominant risk — generated code that compiles and boots but changes API behavior.
  • Single-maintainer, zero-dependent signal: no battle-testing; edge cases in custom operations, subresources, and inheritance are unverified.
  • One-way tooling: no round-trip guarantee, so the converted config becomes the new source of truth with no automated way back.

Key questions

  1. What exact source and target formats does this version support, and which API Platform version was it written against?
  2. Does our application's resource inventory (custom operations, filters, serialization groups, security, validation) fall inside the tool's supported vocabulary?
  3. Is the output deterministic and reviewable as a diff, or does it rewrite files wholesale?
  4. What is the license posture for forking (MIT — permissive, fork is viable)?
  5. Do we actually have a format migration to perform, or is this a solution in search of a problem? If we are already on attributes, value is zero.

Disposition: Do not adopt as a dependency. Evaluate as a fork-and-run codemod only if we have a concrete pending migration, and budget manual remediation as the majority of the effort.

Integration Approach

Stack fit Symfony + API Platform only. For a Laravel-first stack, the honest answer is that this package does not fit and should not be forced. If the organization runs API Platform on Symfony anywhere, that application — not the Laravel services — is the only viable host for the tool, and even there it belongs in a developer's branch rather than CI or production.

Migration path Treat it as a codemod, not a library:

  1. Fork under our org; pin the fork to a tag; record the upstream commit SHA.
  2. Install in an isolated branch of the target Symfony/API Platform app (or a scratch app carrying a copy of the resource config).
  3. Run the conversion against a frozen snapshot of resource configuration.
  4. Review output as a diff; classify every change as (a) faithful, (b) semantically lossy, (c) dropped.
  5. Hand-remediate lossy and dropped items.
  6. Merge the converted config without the converter in composer.json.
  7. Archive the fork with a README documenting the run, so the migration is reproducible.

Compatibility Verify before committing effort: PHP constraint, Symfony major, API Platform major, and whether the bundle's compiler pass still boots on our kernel. Archived means the constraint ceiling is fixed — if we are on a newer major, expect to patch composer.json constraints and possibly the service definitions. Budget a half-day spike to confirm the bundle boots and produces any output at all before scoping the real work.

Sequencing

  • Phase 0 – Decide: confirm a real format migration exists; if not, close the evaluation.
  • Phase 1 – Spike: fork, boot, convert one representative resource; assess output quality.
  • Phase 2 – Inventory: enumerate resources and classify by config complexity; the long tail of custom operations is where effort concentrates.
  • Phase 3 – Contract baseline: capture OpenAPI/JSON Schema snapshots and an API contract test suite before conversion. This is the acceptance gate — converted config must reproduce the same schema.
  • Phase 4 – Convert & remediate in batches, smallest/simplest first.
  • Phase 5 – Cut over & decommission the tooling.

Sequence the contract baseline before any conversion; without it, semantic loss is undetectable.

Operational Impact

Maintenance Archived status transfers ownership to us. Any fork becomes an internal artifact requiring an owner, a pinned SHA, and a documented rationale. Because the tool exits the dependency graph after migration, steady-state maintenance burden is near zero — this is the package's one genuine strength. The cost is entirely front-loaded into the migration project.

Support No upstream maintainer, no issue tracker activity, no community to escalate to. Internal expertise in API Platform metadata is the only real support channel. Mitigate by pairing the migration with whoever owns the API Platform application and by writing the conversion runbook as we go.

Scaling Not a runtime scaling concern — it never serves traffic. The scaling question is organizational: if format migrations recur across many services, a one-off fork per migration does not scale. If this is a single application with tens of resources, it is a bounded project. If it is a platform-wide standardization effort, a maintained codemod framework (PHP-CS-Fixer custom rules, Rector) is the better long-term instrument, and this bundle is at best a reference implementation.

Failure modes

  • Silent semantic drift: attributes generated but a filter or security expression dropped — passes tests that don't cover the surface, breaks in production. Highest-severity mode.
  • Boot failure / version mismatch: bundle will not register on current Symfony; discovered late.
  • Partial conversion: tool handles the common case, chokes on custom operations, leaving a hybrid config that is harder to reason about than the original.
  • Wholesale overwrite: generated files replace hand-written ones with no diffable history, making review and rollback painful.
  • Orphaning: converter run, config migrated, but the mapping decisions are undocumented — the next migration re-derives everything.

Ramp-up Low to start, steep to validate. A competent engineer can fork, boot, and produce output in under a day. Validating that output is the real cost and requires API Platform depth: understanding metadata loading order, operation inheritance, and how each format maps to the runtime metadata graph. For a handful of simple resources, plan days. For a mature API with custom operations, filters, and security, plan weeks dominated by remediation and contract testing, not by running the tool.

Bottom line for the TPM: low score, archived, zero dependents, and a Symfony-only footprint disqualify this as an adopted dependency in a Laravel-centric stack. Its only defensible use is as a forked, one-shot migration aid inside an API Platform/Symfony application that has a confirmed pending format migration — and even then, the contract-test baseline and manual remediation budget, not the tool, determine the outcome.

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