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

Verify Email Change Bundle Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Getting Started

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+.

Implementation Patterns

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:

  • PHP 8.2–8.5 (or your app’s supported range)
  • Symfony 7.2 and 8.0
  • Laravel versions your app actually supports

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.

Gotchas and Tips

  • Symfony 8 requires PHP 8.4+. Do not upgrade your Symfony constraints just because this package supports Symfony 8. Confirm Laravel and other dependencies also support it.
  • 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.
  • Dev/prod constraint drift. The package fixed its own 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.
  • Debugging command tests. Use -v on PHPUnit and inspect CommandTester::getDisplay() when assertions fail. For artisan tests, $this->artisan('your:command')->assertExitCode(0) remains the simplest first check.
  • Extension points. If the package exposes base command classes or test case classes, extend those instead of copying Symfony Console bootstrapping. That keeps your tests compatible with future Symfony Console changes.
  • Version pinning. For production, pin ^2.1 and run composer update --with-all-dependencies in a branch. Verify composer why symfony/console before deploying.
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.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core