Sortie de Laravel 9.10
L'équipe Laravel a publié la version 9.10 avec une méthode findOr() Eloquent, une nouvelle assertion de commande, récupère l'entrée en tant qu'instance Stringable, et plus.
Avant d'actualiser la fonction de base de données
Rok Sprogar a contribué avec 'beforeRefreshingDatabase' au trait RefreshDatabase. Cela vous permet d'exécuter du code avant que la base de données ne commence à s'actualiser :
class DataExportTest extends TestCase
{
use RefreshDatabase;
protected $seed = true;
protected function beforeRefreshingDatabase()
{
$this->artisan('db:wipe --database another-database-connection');
}
// ...
}
N'attend pas l'affirmation de la commande de sortie
Markus Hebenstreit a contribué à une méthode doesntExpectOutputToContain d'assertion Command qui s'explique d'elle-même :
Artisan::command('contains', function () {
$this->line('My name is Taylor Otwell');
});
$this->artisan('contains')
->doesntExpectOutputToContain('Taylor Otwell');
Méthode éloquent "findOr"
Jess Archer a contribué avec une méthode findOr() au constructeur et aux relations éloquents. Cette méthode firstOr()
correspond aux méthodes existantes :
User::findOr(1, fn () => throw new RuntimeException);
User::findOr(1, fn () => abort(403));
User::findOr(1, fn () => 'retourne quelque chose');
User::findOr(1, ['columns'], fn () => '...');
// Marche aussi avec les relations
$user->posts()->findOr(1, fn () => '...');
Extension compilée personnalisable
Taylor Otwell a contribué à une extension View compilée configurable qui est personnalisable via la configuration view lorsqu'elle est transmise au compilateur de Blade :
new BladeCompiler(
$app['files'],
$app['config']['view.compiled'],
$app['config']->get('view.relative_hash', false) ? $app->basePath() : '',
$app['config']->get('view.cache', true),
$app['config']->get('view.compiled_extension', 'php'),
);
Prise en charge des opérateurs PostgreSQL "IS" et "IS NOT"
Markus Koch a contribué au support des operateurs 'is' et 'is not' lors de l'utilisation de PostgreSQL. Voir le Pull request #42123 pour plus de détails.
Récupérer l'entrée du Request en tant que chaîne
Cameron Wilby et Taylor Otwell ont contribué à la capacité de récupérer les entrées de la requête en tant qu'instance Stringable :
$name = $request->string('name');
// ou
$name = $request->str('name');
Append et Prepend des Jobs à la chaîne existante
Jan-Oliver Pantel a contribué avec prependToChain() aux méthodes appendToChain d'ajout et de préfixation des tâches :
Le cas d'utilisation pour cela est chaque fois qu'un travail au sein d'une chaîne veut mettre des travaux en file d'attente sur sa propre chaîne sans avoir besoin d'en créer un nouveau et d'attendre l'exécution réussie de la "chaîne enfant".
Ceci est techniquement déjà possible puisque toutes les propriétés et méthodes nécessaires sont publiques. Cependant, avoir des fonctions formalisées pour cela permet d'obtenir un meilleur DX.
Voir le Pull request #42138 pour plus de détails.
Notes de version
Vous pouvez voir la liste complète des nouvelles fonctionnalités et mises à jour ci-dessous et le diff entre 9.9.0 et 9.10.0 sur GitHub. Les notes de version suivantes proviennent directement du journal des modifications :
v9.10.0
Ajouts
- Ajout de la possibilité d'utiliser un alias lors de l'upsert via MySQL ( #42053 )
- Illuminate/Routing/Router::middlewareGroup() prendra en charge le tableau des middlewares ( #42004 , e6b84fb )
- Ajout de l'attribut AsCommand manquant sur schedule:list ( #42069 )
- Ajoutez la fonction beforeRefreshingDatabase au trait Testing/RefreshDatabase ( #42073 )
- Ajout de la méthode d'assertion doesntExpectOutputToContain ( #42096 )
- Ajout d'une méthode findOr à Eloquent ( #42092 )
- Autoriser l'extension dans Illuminate/View/Compilers/Compiler.php( 68e41fd )
- Prend en charge les opérateurs PostgreSQL 'IS' et 'IS NOT' ( #42123 )
- Ajout de méthodes stret stringà Illuminate/Http/Concerns/InteractsWithInput ( c9d34b7 )
- Ajout de méthodes pour ajouter et préfixer des travaux à la chaîne existante ( #42138 )
Correctifs
- Faites en sorte que les travaux inexistants s'exécutent sur le chemin ayant échoué au lieu de planter ( #42079 )
- Fix schedule:work command Artisan nom binaire ( #42083 )
- Correction du middleware TrimStrings avec des caractères non UTF8 ( #42065 )
- Copiez les paramètres régionaux et defaultLocale de la requête d'origine dans Request::createFrom() ( #42080 )
- Correction de ViewErrorBag pour la sérialisation de session JSON ( #42090 )
- Correction des clés de tableau des routes mises en cache dans CompiledRouteCollection::getRoutesByMethod() ( #42078 )
- Correction du problème json_last_error avec JsonResponse::setData ( #42125 )
- Correction d'un bug dans BelongsToMany où des lignes non liées sont renvoyées ( #42087 )
- Correction de HasAttributes::mutateAttributeForArray lors de l'accès à un attribut non mis en cache ( #42130 )
Modifications
- Rendre les erreurs de règle de mot de passe traduisibles ( #42060 )
- Refonte de la commande event:list. ( #42068 )
- Événement modifié : commande de liste ( #42084 )
- Lancer LostDbConnectionException au lieu de LogicException ( #42102 )
- Lancer une exception d'interblocage ( #42129 )
- Prise en charge de Arr::forget() pour les objets ArrayAccess imbriqués ( #42142 )
- Autoriser Illuminate/Collections/Enumerable::jsonSerialize() à renvoyer d'autres types ( #42133 )
- Calendrier de mise à jour : sortie de coloration de la liste ( #42153 )
Voir plus
0 commentaire(s)
Laissez votre commentaire à @johnmbiya
Posts similaires
Tutoriel Laravel 9 CRUD pour débutant : insérer, Lire, modifier et supprimer
Laravel 8 Mail : La méthode simple pour envoyer des mail en Laravel 8
Tutoriel Laravel 8 Importer et Exporter un fichier Excel et CSV
18 astuces pour optimiser vos requêtes de base de données avec Laravel
Catégories
Soyez au courant des dernières tendances
Abonnez-vous pour obtenir les meilleurs articles, tutoriels, astuces et informations !
@Droid il y a 2 ans
J'ai trop aimé l'article, j'ai appris beaucoup de choses sans visiter la documentation officielle
Répondre1 réponses
@johnmbiya il y a 2 ans
Merci @Droid, Les tutoriels bien détaillés de Laravel seront bientôt disponible pour vous permettre de mieux découvrir la puissance du Framework Laravel