berry/extension-method-stub-generator
Composer plugin that scans dependencies for berry-method-extensions.json and generates PHP stub files for Berry “extension methods”. Improves IDE autocomplete and supports static analysis (e.g., PHPStan) by exposing fluent methods via generated stubs.
phpstan/extension-installer).berry/htmx). If the Laravel project doesn’t use Berry, the package is irrelevant unless extended for Laravel-specific stubs.composer install/update, no runtime performance impact exists.phpstan/extension-installer).stubs/ or vendor/ (configurable).Illuminate\Support\Collection extensions) by defining custom berry-method-extensions.json.Collection with berry/laravel-collection-extensions.json for domain-specific methods.vendor/autoload.php overrides). Mitigate by:
stubs/ (excluded from vendor/).autoload-dev in composer.json for IDE-only files.*.stub.php files. PHPStorm works out-of-the-box; other IDEs (e.g., VSCode) may require manual configuration.Illuminate\* extensions)?stubs/ (recommended) or vendor/ (riskier)?phpstan/extension-installer or rubix/mls for overlap.composer install trigger stub generation, or is a separate step needed?extension-classes config or phpstan/extension-installer.berry-method-extensions.json for Laravel classes.{
"extensions": [
{
"namespace": "App\\Extensions",
"class": ["Illuminate\\Support\\Collection"],
"methods": [
{
"name": "toJsonApi",
"doc": "Converts collection to JSON:API format",
"returns": "array"
}
]
}
]
}
berry-method-extensions.json.composer.json under require-dev:
"require-dev": {
"berry/extension-method-stub-generator": "^1.0"
}
berry-method-extensions.json (e.g., for a Berry dependency or custom Laravel class).composer install to generate stubs.stubs/ or vendor/ (adjust paths in composer.json if needed).vendor/bin/phpstan analyse --generate-mock-files
composer install --no-dev && composer install).phpstan/extension-installer by ensuring stub paths don’t overlap.rubix/mls, coordinate stub generation to prevent duplication.berry-method-extensions.json.composer install.composer update).berry-method-extensions.json).berry-method-extensions.json requires manual changes but no redeployment.CONTRIBUTING.md or README.md.berry-method-extensions.json exists and is valid.extension-classes is configured or stubs are in vendor/ with correct naming.berry-method-extensions.json to relevant packages.| Failure Scenario | Impact | Mitigation |
|---|---|---|
berry-method-extensions.json malformed |
Stubs not generated; build fails | Validate JSON schema; use CI linting. |
| IDE misconfiguration | Stubs ignored; no autocompletion | Document IDE setup; provide sample configs. |
| Composer plugin conflicts | Stub generation fails silently | Test in isolation; check Composer logs. |
| Berry dependency updates | Stub format breaks | Test stubs after major dependency updates. |
Stubs committed to vendor/ |
Merge conflicts in CI | Use autoload-dev or stubs/ directory. |
How can I help you explore Laravel packages today?