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

Symfony Bundle Skeleton Laravel Package

tito10047/symfony-bundle-skeleton

A starter skeleton for building Symfony bundles. It provides the basic directory structure and configuration files needed to scaffold a reusable bundle, letting you focus on your package logic instead of boilerplate setup. Ideal for developers creating custom Symfony bundles.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Critical framing issue. Despite being reviewed as a "Laravel/PHP package," this release is a Symfony bundle scaffolding template. It is installed via composer create-project, not composer require, which means it is a one-time project generator, not a runtime dependency. There is no composer.json require line to add to a Laravel application, no service provider, no auto-discovery. For a Laravel-centric roadmap the direct leverage is near zero; the asset is a reference implementation for cross-framework PHP package structure.

Architecture fit. Poor for Laravel proper. Laravel packages are built around service providers, facades, config publishing, and package discovery; Symfony bundles are built around Bundle classes, DI extension classes, and compiler passes. The two package models are not interchangeable. The only legitimate fit is a scenario where we must ship PHP code that Symfony applications consume (e.g., a shared SDK or domain library), or where we want a worked example of a minimal, testable PHP library skeleton to imitate internally.

Integration feasibility. Mechanically trivial and low blast radius. create-project scaffolds into an empty directory, needs no coordination with application dependencies, and cannot break an existing Laravel app. The real feasibility constraint is transitive: the skeleton pins a PHP floor inherited from Symfony 7.4 (PHP 8.2+) and 8.1 (PHP 8.4). Adopting the skeleton sets the PHP floor for whatever we generate from it.

Technical risk.

  • Maturity: v1.0.0 is the first stable tag — no production track record, no deprecation history to read.
  • Bus factor: single author (tito10047), and the generator (tito10047/symfony-bundle-maker ^1.0) is a second single-author package at the same maturity level. Two 1.0.0 firsts compounding.
  • Provenance: explicitly derived from yceruto/bundle-skeleton. Fork chains mean we inherit an upstream's design decisions and any abandonment, but not its maintenance cadence.
  • Target ambiguity: advertising support for Symfony 8.1 alongside 7.4 LTS implies either a pre-release target or aggressive forward-tracking. Either outcome produces upgrade churn for anyone generated from it.

Key questions to resolve before any decision.

  1. What is the declared php constraint in the generated composer.json?
  2. Is the output a template repository (fork-and-own) or does it stay coupled to symfony-bundle-maker for regeneration?
  3. Is Symfony 8.1 a stable release or a pre-release/dev branch at the time of this tag?
  4. What license, and does the yceruto lineage introduce attribution obligations?
  5. Is there CI (phpunit/phpstan/psalm), a SECURITY.md, and a stated support window for 7.4 LTS?
  6. Is upstream yceruto/bundle-skeleton still maintained, or is this fork now the de facto successor?
  7. Can a generated bundle be dual-consumed from Laravel with a hand-added service provider, or is the structure Symfony-only?

Integration Approach

Stack fit. Misaligned. Laravel 10/11/12 consume individual Symfony components (HttpFoundation, Console, VarDumper, etc.) but do not host bundles. A bundle generated here will not be discovered by a Laravel app.

Migration path. None required, and that is the honest answer. This is greenfield scaffolding with no incumbent to migrate from. Do not attempt to retrofit an existing Laravel package into it — the structural rewrite would exceed the value.

Compatibility.

  • PHP floor: 8.2 (Symfony 7.4) — this will not support older Laravel deployments still on 8.1.
  • Laravel support: none declared; must be added by writing a service provider and package-discovery entry by hand.
  • Composer: standard, no conflicts expected at install time; conflicts appear only if we later merge generated constraints into an existing monorepo.

Sequencing if we proceed.

  1. Time-boxed spike (< 1 day). Scaffold into a throwaway directory. Inspect composer.json, DI extension wiring, test harness, and PHP constraints. Produce a one-page readout.
  2. Provenance/licensing review. Confirm license, fork attribution, and security posture before any artifact leaves the spike.
  3. Decide the deliverable. Only proceed if there is a real Symfony-facing or cross-framework package on the roadmap. Laravel-only work stops here.
  4. Internalize, don't depend. If the structure is good, copy the pattern into a first-party template we control, pinned to our PHP floor and our CI. Do not make a single-maintainer template the origin of production repositories.
  5. Parallel Laravel track. For Laravel packages use spatie/laravel-package-tools or orchestra/testbench; do not attempt convergence.

Operational Impact

Maintenance. The dominant cost is ownership transfer. Once code is generated from a skeleton, upstream fixes do not flow to us — every Symfony upgrade (8.2, 9.0) becomes a manual diff against a template we do not control. Forking a template is cheap; maintaining a fork silently is expensive. Budget a recurring review each Symfony minor.

Support. Single-maintainer projects have no SLA. Escalation is a GitHub issue with unknown response time. There is no vendor to call, and adopting it as the origin of multiple production repositories creates a shared dependency on an unstaffed project — a concentration risk disproportionate to the benefit.

Scaling. Runtime scaling is a non-issue: nothing from this package ships to production. Operational scaling means number of generated repositories, and that scales badly — N forks means N manual upgrade paths. If we need many packages, the correct move is one internal skeleton with automated dependency updates, which makes this package a reference only.

Failure modes.

  • Upstream abandonment or silent archival → we inherit an unmaintained template with no successor.
  • Symfony 8.1 support proves to be pre-release tracking → generated code hits API churn and deprecations before our own release cadence.
  • Generated PHP constraint conflicts with CI images or existing deployment targets, discovered late.
  • Template drift: generated repos diverge from the skeleton within weeks, and the "regenerate" story evaporates.
  • License/attribution ambiguity inherited through the yceruto fork chain, surfacing at distribution time.
  • Team treats it as a Laravel package, spends sprint time on an unusable scaffold — the most likely failure given how the request was framed.

Ramp-up. Low for anyone fluent in Symfony bundle conventions (hours to productive). Non-trivial for a Laravel-only team: bundle DI extension semantics, compiler passes, and bundle-vs-package packaging are unfamiliar territory — realistically 2–4 days to produce something defensible, for a deliverable with no Laravel consumer.

Recommendation. Record this as a monitoring-only entry. Do not add it as a dependency (it cannot legitimately be one) and do not make it the source of production repositories. Revisit only if (a) a Symfony-facing deliverable appears on the roadmap, or (b) the project demonstrates sustained multi-contributor maintenance and a published support policy across a second minor release. The v1.0.0 tag is worth noting as the point from which maturity can now be measured — it is not, by itself, evidence of readiness.

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.
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
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names