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.
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.
v1.0.0 is the first stable tag — no production track record, no deprecation history to read.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.yceruto/bundle-skeleton. Fork chains mean we inherit an upstream's design decisions and any abandonment, but not its maintenance cadence.Key questions to resolve before any decision.
php constraint in the generated composer.json?symfony-bundle-maker for regeneration?SECURITY.md, and a stated support window for 7.4 LTS?yceruto/bundle-skeleton still maintained, or is this fork now the de facto successor?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.
Sequencing if we proceed.
composer.json, DI extension wiring, test harness, and PHP constraints. Produce a one-page readout.spatie/laravel-package-tools or orchestra/testbench; do not attempt convergence.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.
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.
How can I help you explore Laravel packages today?