gonzaloalonsod/afip-bundle
A PHP bundle that simplifies integration with Argentina's AFIP web services. It provides helpers for authentication and electronic invoicing workflows, reducing boilerplate when communicating with AFIP's SOAP APIs and automating tax and billing operations.
The v1.2 release renames the vendor namespace from Gonz\... (Gonzakpo) to Gonzaloalonsod and adds Symfony 5 support. Treat this as a migration, not a drop-in upgrade.
composer.json with the new vendor-prefixed one, then composer remove the old one first — Composer will happily install both side by side and you'll get duplicate class definitions rather than a clean error.
composer remove gonzakpo/<package>
composer require gonzaloalonsod/<package>:^1.2
providers and aliases arrays in config/app.php and then run php artisan config:clear. A stale cached config is the single most common cause of "class not found" after a vendor rename.grep -rn "Gonzakpo" app/ config/ routes/ database/ tests/ — every use statement, facade alias, config key, and publish tag needs updating.php artisan vendor:publish --provider="Gonzaloalonsod\...\ServiceProvider") and diff it against your existing config/ copy. Config keys frequently change alongside namespaces, and a silently-ignored key is worse than a fatal error.Start by reading the package's composer.json for its illuminate/* constraints, then the service provider for what it actually binds into the container. Those two files tell you 80% of what you need.
Wrap the package behind your own binding. Because the vendor just changed once, it can change again. Bind the package's client/manager into the container under your own interface and inject that:
// app/Providers/AppServiceProvider.php
$this->app->bind(ReportGenerator::class, fn ($app) => new PackageReportAdapter(
$app->make(\Gonzaloalonsod\Reports\Client::class)
));
Consumers then type-hint your interface, and a future rename is a one-file change.
Pin the major version and upgrade deliberately. "gonzaloalonsod/<package>": "^1.2" — do not use * or dev-master. Given that a vendor rename happened inside a minor release, your lockfile is your only real safety net.
Test the Symfony bridge explicitly if you rely on it. Symfony 5 support means the package now pulls Symfony components into a Laravel app, where Illuminate already provides overlapping functionality (http client, event dispatcher, console). Check composer why symfony/* after installing and confirm you're not running two HTTP clients or two event dispatchers with different service IDs. Where overlap exists, prefer the Laravel implementation and configure the package to accept an injected instance rather than letting it instantiate its own.
Keep a migration commit separate. Do the rename in one atomic commit (composer.json, lockfile, use statements, config, tests) so that git bisect on a later regression lands on either "before rename" or "after rename" cleanly.
In a multi-package app, if other internal packages depend on the old namespace, update them in dependency order and tag them, otherwise you'll build a partial upgrade that only fails at runtime.
^1.0 will pull it in silently on your next composer update. Pin to the exact known-good version until you've migrated, or you'll get Class "Gonzakpo\..." not found in production on an unrelated deploy.composer dump-autoload -o and clear ~/.composer/cache (or composer clearcache). Also check for a leftover vendor/gonzakpo/ directory — a failed remove leaves it behind and the old autoloader map can still resolve it.vendor:publish --tag=config style tags are often derived from the provider name. Use --provider= explicitly, or list available tags with php artisan vendor:publish (no args) and read the menu.config('gonzakpo.api_key') vs config('gonzaloalonsod.api_key') — the former returns null and your code proceeds with an empty credential instead of throwing. Add a boot-time assertion or a failing test around required config.composer update output rather than assuming success because it exited 0.$this->app->bind()/singleton() calls you can override, and many packages ship a Manager with a extend() method. If the Symfony bridge misbehaves in a Laravel context, look for extend()/driver registration before patching vendor code — and never patch vendor code, since the next rename will wipe it.php artisan tinker + app()->make(\Gonzaloalonsod\...\Client::class) tells you fast whether the problem is container binding or your application code. If that resolves but your code fails, the issue is a stale use statement, not the package.git diff v1.1..v1.2 --stat on the package repo, or unpack both versions into temp dirs and diff -r. Check for signature changes in public methods — a rename plus a changed constructor argument list is a very different upgrade than a rename alone.How can I help you explore Laravel packages today?