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.
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:
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.*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."CHANGELOG.md/UPGRADE-2.0.md that simply wasn't pasted into the release body.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.
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:
Extension::load() → a Laravel ServiceProvider with mergeConfigFrom() and register().$this->app->tag([...], 'my.tag') plus a resolver, or $this->app->bind() with a contextual attribute.EventServiceProvider $listen array or a ShouldQueue listener.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.
composer require --dry-run first; read the solver output rather than guessing.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.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.app/Support with a comment linking the source tag is still lower risk than depending on a repo with an undocumented major release.How can I help you explore Laravel packages today?