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

Generators Laravel Package

bpocallaghan/generators

A Laravel package by Ben Plummer that extends Artisan's built-in generators, adding commands to quickly scaffold models, controllers, requests, migrations, seeders, and more with sensible defaults.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. bpocallaghan/generators is a developer-experience package, not a runtime dependency. It extends Laravel's GeneratorCommand family to produce opinionated scaffolding (models with accompanying migrations/factories/seeders, resources, requests, etc.) driven by a publishable config/generators.php and publishable stub files. Integration surface is narrow: a service provider that registers console commands, a config merge, and a vendor:publish hook. It does not touch the request lifecycle, the container's hot path, or the database. This makes it architecturally benign — the correct question is not "does it fit our architecture" but "does its opinionation match our conventions."

Integration feasibility. Feasible with minimal effort. It installs as a require-dev dependency, leverages package auto-discovery, and needs only php artisan vendor:publish to expose config and stubs. The real work is not installation; it is reconciling the package's default stub output with our house style (namespaces, DTO/value-object conventions, test scaffolding, static analysis annotations).

Technical risk. Low blast radius, moderate sustainability risk:

  • Maintainer concentration. A single-author, ~120-star package with a last release in April 2024. Reasonable for a DX convenience; unacceptable as a load-bearing platform component.
  • Laravel version drift. Laravel's skeleton conventions (directory layout, default namespaces, attribute-based model configuration, Pest vs. PHPUnit defaults) change across majors. Stubs are frozen at the last release and will silently produce stale scaffolding after an upgrade. Verify explicit support for your target Laravel major before committing; do not rely on composer.json constraints alone.
  • Command collision. If the package overrides or shadows native make: commands, behavior differs per project depending on load order and config. Confirm whether it extends or replaces native commands.
  • Stub ownership ambiguity. Once published into resources/stubs or stubs/, the artifacts are ours, not the vendor's — a governance point often missed.

Key questions for the maintainer/vendor evaluation.

  1. Which Laravel and PHP versions are explicitly tested in CI, and against which does the current release pass?
  2. Does it register new command names or override native make:* signatures? What happens on collision?
  3. What is the config surface — can we redirect output paths, namespaces, and stub roots without forking?
  4. Is there test coverage for generated output, or only for command registration?
  5. What is the deprecation/upgrade policy, and is the maintainer responsive to Laravel major releases?

Integration Approach

Stack fit. Best suited to a Laravel monolith or a modular Laravel codebase where multiple squads author similar artifacts and consistency matters more than novelty. Poor fit for projects with heavy Domain-Driven Design layering, non-standard namespaces, or a strong existing internal generator — the package's value is its defaults, and overriding them fully erodes the benefit.

Migration path. Non-disruptive and fully reversible:

  1. Add as require-dev, pin an exact version, run auto-discovery.
  2. Publish config and stubs into version control so generated output is reproducible across the team.
  3. Generate a small reference set of artifacts and diff against current conventions — treat this as an acceptance gate, not a formality.
  4. Customize the published stubs to house style, then commit.
  5. Roll out to one squad; expand only after the stubs survive one real feature cycle.

Removal is a single composer remove with no database or config cleanup required — the primary argument for adopting it at all.

Compatibility. Add an explicit CI matrix entry that runs the package's commands against the pinned Laravel and PHP versions. Because generated code becomes source, a Laravel upgrade must include a stub-regeneration check: generate a fixture artifact post-upgrade and diff it, otherwise drift enters silently.

Sequencing. Pilot → codify stubs → wire into the project template or a documented make recipe → add lint/static-analysis on generated output (Pint, PHPStan/Psalm) so scaffolding cannot introduce style or type regressions. Only after that should the team treat it as a standard tool rather than a personal convenience.

Operational Impact

Maintenance. Low ongoing operational cost — no services, no migrations, no runtime telemetry. The maintenance burden is concentrated in stub stewardship: someone must own the published stubs and refresh them on each Laravel major. Budget roughly a day per major upgrade, plus ad-hoc time when conventions shift.

Support. MIT-licensed community package with no SLA and a single primary maintainer. Support posture should be "self-support with a fork escape hatch." Because the code footprint is small and the commands are conventionally structured, forking is genuinely cheap; that is the mitigating factor for the abandonment risk.

Scaling. Irrelevant to production scale — it never executes in production. It scales with team size and onboarding volume: value increases with the number of engineers authoring similar artifacts, and approaches zero for a solo developer who already has muscle memory. Do not include it in a production container image; keep it in require-dev so it is excluded from optimized builds.

Failure modes.

  • Silent stub drift after a Laravel upgrade produces scaffolding that compiles but violates current conventions — the highest-probability failure, and the one with the longest detection lag.
  • Publish overwrite clobbering locally customized stubs when someone re-runs vendor:publish without --force awareness.
  • Command shadowing causing a developer to believe they ran the native generator when they did not.
  • Abandonment blocking a PHP or Laravel upgrade if the package's service provider or command signatures become incompatible — resolved by fork or removal, but only if stubs are already vendored.
  • Convention divergence if only part of the team adopts it, producing two classes of artifacts in one codebase.

Ramp-up. Under half a day per engineer: read the published config, run one command per artifact type, review the stubs. Documentation burden is a single internal page covering which command to use for which artifact and the rule that stubs are owned by the platform team. Low enough that a pilot needs no formal training plan.

TPM recommendation. Adopt conditionally as a require-dev convenience with vendored, house-owned stubs and an explicit CI compatibility check. It is not a platform dependency and should never be treated as one; the decision is low-risk and low-regret, contingent on someone accepting stub ownership.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
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