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

Base Bundle Laravel Package

mero/base-bundle

mero/base-bundle is a lightweight foundational package for Mero-based PHP projects, providing shared base components, configuration, and utilities that reduce boilerplate and keep dependent bundles consistent. Use it as a starting point when building on the Mero ecosystem.

View on GitHub
Deep Wiki
Context7

Getting Started

The compatibility picture is unchanged in principle: this is a Symfony bundle, not a Laravel package. 2.0.0 does not change that. Unless the maintainer rewrote the package as a framework-agnostic library and dropped Symfony\Component\HttpKernel\Bundle\Bundle and the DI extension model entirely (possible, but nothing in the release suggests it), composer require mero/base-bundle in a Laravel app still fails or installs something Laravel's container cannot register. There is no config/app.php provider entry, no package discovery, no Illuminate\Support\ServiceProvider.

What 2.0.0 actually tells you, and what it doesn't. The release notes are empty — no changelog entry, no upgrade guide, no BC-break summary. For a major version bump that is itself the most important signal in this update: semver guarantees something broke, and the publisher chose not to say what. Treat the version number as the only fact and re-derive everything else from the tree.

Revised order of operations:

  1. composer.json first, and read it as a diff against your assumption. The previous assessment said this was a 2015-era bundle pinning symfony/symfony ~2.x. That claim is now stale by definition — 2.0.0 either bumps Symfony/PHP floors or removes them. Check require, require-dev, and the branch-alias. If it now says symfony/framework-bundle: ^5.4 || ^6.0 and php: >=8.1, the audience has completely inverted: the legacy Symfony 2.8/3.x apps that were the only viable users are now locked out, and modern Symfony apps are the target.
  2. Check whether it's still a bundle at all. Look for *Bundle.php extending Symfony\...\Bundle\Bundle, DependencyInjection/, Resources/config/. If those are gone and src/ is plain PSR-4 classes, a framework-agnostic package is suddenly plausible and the whole assessment shifts to "maybe installable as a plain Composer library inside Laravel, calling classes directly."
  3. Confirm repo status. The archived flag, star count, and dependents were true when the last assessment was written; a 2.0.0 may mean the repo was unarchived, transferred, or forked. Check the tag date, the committer, and whether there's a CHANGELOG.md/UPGRADE-2.0.md that simply wasn't pasted into the release body.
  4. Then src/ for the class inventory, and only then attempt an install.

If you're on Laravel and want what a "base bundle" provides — shared helpers, base controllers, traits, subscriber abstractions — the recommendation from before still holds: laravel/helpers, barryvdh/laravel-ide-helper, or a small in-house app/Support package. 2.0.0 does not create a reason to adopt this on Laravel.

Implementation Patterns

Mixed-stack boundary. Unchanged and still the safest pattern. If a Symfony sibling service consumes this bundle, don't share code across runtimes — expose an HTTP or queue contract and call it from Laravel with Http:: or a queued job. Note that if 2.0.0 did drop Symfony 2/3 support, that sibling must be on Symfony 5.4+/6+ to take the upgrade; a Symfony 2.8 service pins you to the 1.x line, which is now an unsupported branch.

Version-pinning as a deliberate pattern. With a major bump and no notes, pin explicitly — "mero/base-bundle": "^2.0" if you're upgrading, "^1.0" if you're staying put — and never * or dev-master. Because the release body is empty you cannot infer what changed from the tag, so an unpinned constraint will silently move you across a BC break on the next composer update.

Porting concepts, not code. The Symfony→Laravel mapping is unchanged and still the best use of this repo:

  • Bundle class + Extension::load() → a Laravel ServiceProvider with mergeConfigFrom() and register().
  • Compiler pass with tagged services → $this->app->tag([...], 'my.tag') plus a resolver, or $this->app->bind() with a contextual attribute.
  • Event subscriber → EventServiceProvider $listen array or a ShouldQueue listener.
  • Abstract base controller / base entity traits → traits in app/Support/Traits, which compose far better than the deep inheritance this bundle likely uses.

Extracting framework-agnostic code. Still the strongest play, and 2.0.0 may make it easier: if the new major split generic utilities out of the Symfony-coupled layer, those classes are the ones worth copying. Take them into a standalone package with no symfony/* requires, add PHPUnit coverage, and require that from both Laravel and Symfony. MIT licensing permits this with attribution. Do not add the bundle itself as a dependency of anything you ship.

Upgrading an existing 1.x consumer. Read the source diff 1.x..2.0.0 rather than trusting notes that don't exist. Focus on: removed classes (base classes are the usual casualty of a major), changed constructor signatures on abstract types you extend, and any switch from DI-extension config to plain constructor arguments. Budget for the abstraction-inversion problem — if your subclasses were written against 1.x protected methods, a 2.0.0 rename is a mechanical but wide refactor.

Gotchas and Tips

  • An empty release body on a major is a red flag, not a neutral one. For a library with zero dependents and no community, nobody will file the "this broke my app" issue that would otherwise prompt documentation. Assume undocumented BC breaks and diff the code before you bump.
  • The "archived / last release 2015" framing is now stale. Don't repeat it as current fact — re-verify archived status, last-commit date, and maintainer identity before deciding. A major bump after a decade is equally consistent with (a) a genuine revival, (b) a fork transferred to a new owner, (c) an automated dependency bump that happened to land a breaking change, or (d) a security-driven rewrite. The version number alone can't distinguish these, and the empty notes are consistent with all four.
  • The abandoned-audience trap has possibly inverted. Previously the bundle was unusable for modern stacks and usable only on Symfony 2.8/3.x. If 2.0.0 raised the Symfony floor, the reverse is now true: modern Symfony gets it, legacy apps are stranded on 1.x with no security backport path. Check which side of that line you're on before planning anything.
  • Constraint conflicts remain likely, just differently shaped. A 2.0.0 targeting Symfony 6 will conflict with an app on Symfony 4.4, and vice versa. Run composer require --dry-run first; read the solver output rather than guessing.
  • Bundles still aren't auto-discovered. No Laravel-style package discovery either way. Registration is AppKernel (Symfony 2/3) or config/bundles.php (Symfony 4+). If 2.0.0 dropped the Bundle subclass, config/bundles.php registration is now wrong and you register services manually instead.
  • Inheritance coupling is worse after a major, not better. "Base" bundles ship abstract classes meant to be extended. Extending an abandoned base class makes its bugs and PHP-version assumptions permanently yours, and a 2.0.0 that renames or re-signatures those methods forces a migration on your side with no upstream guide. Prefer composition, or copy-paste-and-own.
  • Debugging (Symfony side): bin/console debug:container --tag=... to see what the bundle registered, bin/console lint:yaml and lint:twig for Resources/config, and debug:event-dispatcher for subscribers. If services silently don't appear, the extension alias in DependencyInjection/Configuration.php is the usual culprit — and after a major, a changed alias is a common silent break.
  • Vendor it if you only need one or two classes. Copying a specific helper into app/Support with a comment linking the source tag is still lower risk than depending on a repo with an undocumented major release.
  • Don't let star count be the whole story, but don't ignore the release hygiene either. Small internal bundles are often fine for their original author. What you can judge from here is process: a 2.0.0 with no notes, no linked PR, and no upgrade guide means nobody is budgeting for downstream users, so budget for reading every line you rely on.
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.
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core