makraz/verify-email-change-bundle
Securely handle user email changes by sending a verification link to the new address before updating the account. This bundle manages confirmation tokens, prevents unverified email swaps, and integrates with your existing user provider and mailer.
Install the 2.1.0 release with Composer, matching your Laravel and PHP constraints:
composer require <vendor>/<package>:^2.1
Start with the package README for command registration and test helper examples. If you are evaluating Symfony 8 support, also read the new SECURITY.md for the vulnerability reporting policy before wiring the package into production.
Your first practical use case should be a single artisan command and its test. Register the command the way your Laravel version expects (Laravel 10: app/Console/Kernel.php; Laravel 11+: bootstrap/app.php or routes/console.php), then run:
php artisan your:command
./vendor/bin/phpunit --filter=YourCommandTest
If you are on Symfony 7.2, the package remains usable; Symfony 8 support is additive for environments that can satisfy PHP 8.4+.
Command registration. Follow the package README for whether commands are auto-discovered or must be listed explicitly. In Laravel 11+ applications, prefer the framework’s console routing over legacy Kernel registration unless the package documents otherwise.
Command test integration. The 2.1.0 release specifically fixes command tests for Symfony 8.0, where Application::add() was removed. Update any test scaffolding or package test utilities that call Application::add() directly to use addCommand() instead. If the package provides its own test case, extend that rather than building a raw Symfony Application.
CI matrix alignment. If you maintain a Laravel package or application that depends on this package, mirror the release’s tested matrix where practical:
Do not add Symfony 8 to CI unless your Laravel version’s symfony/console constraint allows it.
Dependency constraint hygiene. The release corrected require-dev constraints to match require. When integrating, check that your own composer.json does not declare a Symfony 8 dev constraint while production still resolves Symfony 7.x. Run:
composer why symfony/console
composer show symfony/console
Security workflow. Add a link to the package’s SECURITY.md in your internal dependency notes. For applications, avoid opening public issues for suspected vulnerabilities; use the documented private reporting channel.
Application::add() removal is the main breakage point. If your command tests instantiate a Symfony Application, replace ->add(new MyCommand()) with ->addCommand(new MyCommand()). This is the most likely source of test failures after moving to Symfony 8.require-dev alignment, but your project can still drift. Keep require and require-dev Symfony constraints consistent to avoid testing combinations that production never resolves.-v on PHPUnit and inspect CommandTester::getDisplay() when assertions fail. For artisan tests, $this->artisan('your:command')->assertExitCode(0) remains the simplest first check.^2.1 and run composer update --with-all-dependencies in a branch. Verify composer why symfony/console before deploying.How can I help you explore Laravel packages today?