medlabmg/youshido-graphql-extended
Extended fork of the Youshido GraphQL package for PHP, layering additional types, helpers, and fixes onto the original library. Suited to PHP and Laravel projects building GraphQL schemas, though the exact additions should be confirmed in the repo.
Architecture fit — low, and the framing is likely wrong. Despite being scoped here as a "Laravel/PHP package," the artifact name (...GraphQLExtendedBundle) and its target (youshido/graphql, distributed as a Symfony bundle) indicate this is a Symfony bundle, not a Laravel package. Laravel has no bundle abstraction: no Bundle registration, no Extension/Configuration tree, no compiler passes. Adopting it in Laravel means either (a) hand-wiring Symfony DI services into Laravel's container, or (b) pulling in a Symfony-in-Laravel bridge — both are architectural debt disproportionate to a convenience wrapper. It will not participate in package discovery (extra.laravel.providers) and will not follow Laravel conventions for config publishing, facades, or queue/event integration.
Integration feasibility — feasible only as a spike. The underlying youshido/graphql library has been effectively unmaintained for years and has been superseded in the ecosystem by webonyx/graphql-php (which powers Lighthouse, Rebing, and API Platform). Practical blockers to expect: PHP version constraints pinned to 7.x, Symfony 3/4-era transitive dependencies, and PSR/Guzzle conflicts against a modern Laravel skeleton. Any of these can make composer require unresolvable before a single line of application code is written.
Technical risk — high, and concentrated in provenance. Zero stars, zero dependents, and a score of 0 mean there is no adoption signal, no peer review, and no evidence of production use outside the publishing organization. The name suggests an internal MedLab Media Group extraction ("to use easily") — i.e., a thin ergonomics layer over someone else's schema/type registration boilerplate, published as a side effect of internal reuse rather than as a supported product. Risks in order of severity:
| Risk | Severity | Why |
|---|---|---|
| Abandoned upstream | High | No security patches, no PHP 8.x support path |
| Single-vendor / bus factor 1 | High | No external contributors to absorb maintainer loss |
| No test or CI signal | High | Cannot assess regression safety on upgrade |
| Transitive CVE exposure | Medium | Unpatched dependency tree, no disclosure channel |
| Thin functional delta | Medium | Value may be a few hundred lines of boilerplate we could own |
Key questions for the maintainer / sponsoring team:
youshido/graphql version does this pin, and what are the PHP and Symfony constraints in composer.json?Recommendation: do not adopt as a production dependency on current evidence. Treat as reference implementation at best. The honest TPM read is that the entire useful surface is probably small enough to reimplement on webonyx/graphql-php or Lighthouse in less time than it takes to de-risk the dependency.
Stack fit. There is no natural fit path into a Laravel application. Ranked options:
webonyx/graphql-php, ships schema-first SDL, directives, batched loading (dataloader) for N+1 mitigation, and a real service provider. Covers the same ergonomic territory this package claims.webonyx, good if the team wants explicit control of type definitions.Migration path. If the organization already runs youshido/graphql somewhere, the correct move is containment: keep it behind a bounded GraphQL service (its own deployable), expose an HTTP boundary, and never let its types, container, or DTOs leak into Laravel domain code. That preserves the option to migrate resolvers to Lighthouse later without touching consumers. If greenfield, there is nothing to migrate — start on Lighthouse and skip the detour.
Compatibility. Before any commitment, verify in a throwaway environment: composer why-not php 8.x, composer why-not laravel/framework ^10|^11, and composer audit. Cross-check PHPUnit and Symfony minor versions too, since old bundles commonly pin symfony/* to ^3.4|^4.0 and will not coexist with Laravel's current Symfony components (Laravel 10/11 ship Symfony 6/7). Expect this to fail.
Sequencing (timebox to ~3 days total, hard stop):
composer.json, count LOC, run composer audit, check last commit. Answers most of the key questions above.Maintenance. We would own it, de facto. No upstream release cadence to ride, no fixes for PHP minor-version breaks, and no path to a security patch other than forking. Budget for a fork-and-maintain commitment (~1–2 engineer-days per quarter, spiking hard on any PHP major upgrade) versus near-zero for Lighthouse.
Support. No documentation beyond a one-line description, no issue history to mine, no maintainer SLA, and no community to escalate to. Incident triage becomes internal archaeology. Verify whether an internal MedLab contact exists — if the package is genuinely orphaned on Packagist, assume zero support.
Scaling. The layer inherits youshido/graphql's runtime characteristics, which predate current GraphQL hardening practice. Assume we must add ourselves: query depth and complexity limits, introspection gating in production, persisted/allowlisted queries, per-query timeouts, and dataloader-style batching to control N+1 on relational resolvers. None of that is free, and none of it is likely provided by a thin extension bundle. Capacity-plan resolvers as unbounded cost centers until limits are in place.
Failure modes to instrument for:
Ramp-up. Effectively zero internal knowledge of youshido/graphql and this wrapper, and the hiring market has none either — GraphQL-in-PHP experience is overwhelmingly webonyx/Lighthouse/API Platform. Every hour spent learning this stack is non-transferable and depreciates to zero. Lighthouse knowledge is portable, documented, and hireable. That asymmetry alone should decide the question.
How can I help you explore Laravel packages today?