watafactory/dwh-query-doctrine-bundle
Symfony bundle that integrates the DWH Query library with Doctrine, providing configuration and integration glue for building and running data warehouse queries in Doctrine-based applications.
This is the initial v1.0.0 release, so there is no migration path or prior API to reconcile. Treat it as a greenfield dependency and verify the basics before building on it.
composer.json for php and illuminate/* constraints. Confirm they match your app's Laravel and PHP versions before requiring it.composer require vendor/package:1.0.0
Laravel package auto-discovery should register the service provider. Confirm with:
php artisan about
php artisan package:discover
php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider"
Inspect the published config file first — it is the fastest way to understand the package's surface area.Since this is the first release, there is no established community guidance yet. The package's README, service provider, and config file are your primary documentation.
Config-first integration. Publish the config and drive behavior from config/package.php plus environment variables. Avoid hardcoding values the package expects to read from config; it keeps test and production behavior aligned.
Inject, don't reach for facades. If the package exposes a facade, prefer resolving its underlying contract via the container in your own services:
public function __construct(private PackageContract $package) {}
This keeps your domain code swappable and makes tests trivial. Reserve facades for controllers and one-off scripts.
Wrap it in a thin adapter. Even at v1.0.0, isolate the package behind your own small service class or interface. You get a single place to adapt when the API shifts, and a single place to mock in tests.
Use it at the edges of the request lifecycle. Typical day-to-day leverage points:
Test against it directly. Write one feature test that exercises the real package, plus unit tests that mock your adapter. The real-package test is your regression net for future releases, since no upgrade guide exists yet.
Pin precisely. Use "vendor/package": "1.0.0" rather than ^1.0 until you have seen how the maintainer versions breaking changes.
First releases are API-unstable. A 1.0.0 tag signals intent, not a track record. Pin the exact version, and re-read the README diff on every bump — there is no changelog history to lean on.
Config caching bites after publishing. If behavior does not change after editing the published config:
php artisan config:clear
php artisan config:cache
This is the most common "the package is broken" false alarm.
Auto-discovery can silently fail. If the package's classes are not found or its provider never boots, check that the provider is listed in bootstrap/providers.php (Laravel 11+) or config/app.php, then run composer dump-autoload. Provider registration order matters if the package depends on another service being bound first.
vendor:publish can overwrite your edits. Use --force deliberately, and prefer publishing only the specific tag you need (--tag=config) rather than everything.
Debugging checklist, in order:
app()->bound(PackageContract::class) — is it actually registered?config('package') — did your config load, or is it null?storage/logs/laravel.log.Extension points to look for early. Contracts and interfaces you can rebind, events the package dispatches (listen rather than fork), and any macroable classes. Extending through these is far cheaper than patching vendor code.
Migrations and data. If the package ships migrations, run them in a transaction on a staging copy first. There is no rollback guidance yet, so confirm the down() methods are real before trusting them in production.
Establish your own upgrade ritual now. Snapshot the current behavior in tests, record the exact installed version in your lockfile, and diff the README and composer.json constraints on each release. With no prior assessment or changelog history, your test suite is the only reliable safety net.
How can I help you explore Laravel packages today?