Overview Laravel v11.31 introduces powerful flexibility to core services. Traditionally, password reset tokens required a dedicated database table, and service configurations remained static once initialized. This update changes that narrative by introducing a cache-driven token repository and the `build` method for on-the-fly service instantiation. Prerequisites To follow this guide, you should be comfortable with: * PHP 8.2 or higher * Fundamental Laravel concepts like Facades and Configuration files * Basic understanding of Authentication and Mail systems Key Libraries & Tools * **Laravel v11.31**: The latest framework release featuring these updates. * **Laravel Cache**: Used for temporary storage of sensitive reset tokens. * **Laravel Mail**: Now supports dynamic SMTP or API configuration. Moving Reset Tokens to Cache By default, Laravel uses the `password_reset_tokens` table. While reliable, creating a database record for a token that expires in minutes often feels like overkill. You can now swap to a cache-based driver in `config/auth.php`: ```php 'passwords' => [ 'users' => [ 'provider' => 'users', 'driver' => 'cache', 'store' => 'password', // Define this in cache.php 'expire' => 60, 'throttle' => 60, ], ], ``` This approach improves performance and reduces database bloat by treating reset tokens as ephemeral data. Dynamic Service Building The new `build` method allows you to ignore the environment files and create service instances using runtime data. This is essential for multi-tenant apps where each client might have their own SMTP server or Redis instance. Dynamic Mailer Example ```php $mailer = Mail::build([ 'transport' => 'smtp', 'host' => '127.0.0.1', 'port' => 1025, 'encryption' => null, 'username' => 'dev_user', 'password' => 'secret', ]); $mailer->to('[email protected]')->send(new WelcomeMessage()); ``` Syntax Notes The `build` method returns an instance of the service (e.g., `Mailer` or `Repository`) rather than a global singleton. This ensures that your dynamic configuration does not pollute the main application state or affect other parts of the system. Tips & Gotchas * **Cache Persistence**: If you use the `array` cache driver for tokens, they will vanish on every request. Use `redis` or `file` for persistence. * **Security**: Never log the configuration arrays passed to the `build` method, as they often contain sensitive API keys or passwords.
Laravel Mail
Products
TL;DR
The Laravel channel (3 mentions) drives the positive sentiment through technical deep-dives; specifically, "Laravel's New Cache Token & Dynamic Build Features in v11.31" showcases new support for dynamic SMTP and API configurations.
- Nov 20, 2024
- Sep 30, 2024
- Jul 27, 2023