ismaambrosi/generator-bundle
A Laravel generator bundle that streamlines scaffolding by creating models, controllers, migrations, and related boilerplate from Artisan commands, reducing repetitive setup and helping you build new application features faster with consistent structure.
Bottom line: the verdict is unchanged — this is a Symfony bundle, not a Laravel or general-purpose PHP package, and it should not be introduced as a dependency. The v2.5.0 release ("Adds support for Symfony 3", Travis-CI tweak, CS fixes) is a maintenance bump inside the same architectural universe the original assessment rejected. It moves the compatibility ceiling from Symfony 2.x to Symfony 3.x; it does not create a Laravel seam, does not modernize the generated output, and does not create an upgrade path into a current PHP runtime. The core finding — there is no bundle/container/extension mechanism in Laravel to host this, and the code it generates targets Doctrine MongoDB ODM annotations and Symfony form types that do not exist in a Laravel application — survives this release intact.
Architecture fit — poor, structurally incompatible. Unchanged by v2.5.0. The artifact still assumes Symfony's DependencyInjection component (Extension class, service definitions), SensioGeneratorBundle command base classes, Twig-based skeleton templates, and Doctrine MongoDB ODM. Symfony 3 support means the bundle now binds against Symfony 3's service-definition and command APIs, not that it acquired any framework-agnostic seam. Laravel's equivalents remain Artisan commands, service providers, and Blade/plain-PHP stubs against mongodb/laravel-mongodb. Nothing lines up: not the container, not the ORM/ODM, not the templating, not the CLI.
Integration feasibility — still not feasible as a dependency. v2.5.0 changes the answer to "which runtime does it pin me to" but not "can I install it." The supported floor is now Symfony 2.8/3.x, which implies a PHP 5.5.9–7.x band — still an incompatible dependency graph against PHP 8.x. The absence of any adoption signal in the supplied data (dependents, composite score) is itself the point: a Symfony 3 compatibility commit landing years after Symfony 3 itself went EOL (November 2018, including the 3.4 LTS) tells you the maintainer was closing out a backlog, not reopening the project. Two commits of substance in a decade is not a maintenance posture.
Technical risk — high, but of the "abandoned, not exploitable" variety. The release does not change the risk profile:
The Travis-CI line deserves a note rather than a shrug: Travis-CI's open-source tier was wound down, so a build-config tweak of that vintage is evidence the CI was already non-functional or about to be — meaning "supports Symfony 3" is a claim with no demonstrated green build behind it in the current era.
Key questions for the team:
| Question | Why it matters |
|---|---|
| Is MongoDB actually in the target architecture today, or hypothetical? | Unchanged and still the gating question. The entire value proposition is MongoDB ODM scaffolding; if the stack is Postgres/MySQL, the package is 100% irrelevant regardless of version. |
| Is the real problem "we need CRUD fast" or "we need a MongoDB document/CRUD generator"? | The first is solved by Artisan plus existing packages; the second by roughly 1–2 days of writing our own stubs. |
| Does any Symfony 3.x application still run in the estate? | This release expands the only legitimate use case from Symfony 2 to Symfony 2.8/3.x. If no such app exists, v2.5.0 is irrelevant rather than merely undesirable. If one does, that app is itself past EOL and is the real item on the roadmap. |
| Does "supports Symfony 3" come with a passing build we can inspect? | The only substantive change is a constraint widening. Without a verifiable green build on a current PHP, treat the claim as unvalidated. |
| MIT license — are we permitted to lift the template structure? | Yes, with attribution. This remains the package's only durable asset, and v2.5.0 adds nothing to it. |
Recommendation: do not adopt; do not re-evaluate on the strength of v2.5.0. Continue to treat it as a reference implementation for template shape and field-type-to-input mapping. Record the release and the reason it does not change the decision, so the next reviewer inherits the reasoning rather than the changelog.
Stack fit — none directly; conceptual reuse only. The realistic integration target is still not this repository but its idea: given a document class with typed fields, emit a model, a form, and CRUD endpoints. In Laravel that means an Artisan generator (php artisan make:mongo-crud) with stubs for an Eloquent-compatible model via mongodb/laravel-mongodb, a FormRequest for validation, a resource controller, and Blade/JSON resource views. The bundle's Twig skeletons remain a useful checklist of which field types need which input widget — and note that v2.5.0 did not touch them, so the harvesting exercise is identical in scope to before.
Migration path (ordered):
mongodb/laravel-mongodb (actively maintained) as the persistence layer. If not, close the evaluation — no further work, and v2.5.0 does not reopen it.composer require the bundle. No shim, adapter, or bridge is worth writing; the Symfony 3 constraint widening does not create one.stubs/mongo-crud/, retain the MIT notice, and modernize to PHP 8 attributes and typed properties.--force guard and dry-run output, because the most common generator failure mode is silently overwriting hand-edited controllers.legacy/ boundary, pin the runtime, and schedule retirement against the Symfony 3.4 LTS EOL date — already past. Do not let it become the template for new work.Compatibility: the release cadence now reads "final release inside the Symfony 3 era" rather than "final release January 2016," but the effective ceiling is unchanged. Symfony 3 predates PHP 7.1 in its early lines, all of PHP 8, and every current Doctrine ODM release. Expect PHP constraint conflicts and annotation-reader failures on anything current. There is still no upgrade path; a fork would be ours.
Sequencing: unchanged. One spike (≤2 days) to validate that custom Artisan stubs produce a working CRUD slice against mongodb/laravel-mongodb. If the spike succeeds, the package is redundant. If it fails, the package would not have helped. v2.5.0 does not alter either branch of that decision, so it should not delay the spike.
Maintenance — we would own it entirely. The v2.5.0 tag is a reminder that "maintained" and "released" are different properties. A single compatibility commit against an already-EOL framework branch, with no dependents and no visible downstream use, is not a maintenance relationship we can rely on. Any fork becomes a permanent internal liability with no upstream to rebase against, and the author's intent remains undocumented beyond the README. The practical cost is unchanged: we would own 100% of it from day one.
Support — none. No maintainer response path, no issue history worth mining for known failure modes, no community to escalate to. The Travis-CI tweak in this release is the closest thing to operational evidence in the changelog, and it points at a CI service that no longer offers the free tier it was written for. Internal onboarding must rely on reading source.
Scaling — irrelevant at runtime, negative organizationally. Generated code scales or doesn't on its own merits; the generator is a developer-machine tool. The scaling concern is organizational and is unchanged: a generator emitting 2016-era Doctrine ODM code scales badly across a growing team, because every new engineer inherits patterns no one can source or justify in review.
Failure modes to plan for:
composer install, or worse, succeeds by dragging the application back to PHP 5.6/7.0-era constraints.Ramp-up: unchanged. The concepts take a developer 1–2 days to absorb and re-express as Laravel stubs; the Symfony 2/3 environment knowledge required to actually run the bundle is scarce and depreciating. The cheapest path to the outcome this package advertises remains to reimplement roughly 200–300 lines of Artisan command and stub templates, keep the attribution, and avoid the dependency entirely.
How can I help you explore Laravel packages today?