Maison  >  Article  >  cadre php  >  La dernière version de Laravel 9.37 est sortie, apportant ces nouveaux changements !

La dernière version de Laravel 9.37 est sortie, apportant ces nouveaux changements !

藏色散人
藏色散人avant
2022-11-04 17:02:481469parcourir

L'équipe Laravel a publié la version 9.37 cette semaine et a également publié quelques correctifs entre 9.37 et Laravel 9.36. La version de cette semaine ajoute la prise en charge du préchargement des ressources avec Vite, de nouveaux gestionnaires de violations strictes, la mise en cache de la vue détaillée de la sortie CLI, et bien plus encore.

Verbose View Cache

Andrew Brown a contribué à la possibilité de passer -v dans la commande view:cache pour afficher le répertoire dans lequel la commande recherche, et utilisez -vv pour afficher chaque fichier dans le cache de commandes. [Recommandations associées : tutoriel vidéo Laravel]view:cache 命令中传递 -v 的功能,以输出命令正在查找的目录,以及通过 -vv 来查看命令缓存中的每个文件。【相关推荐:laravel视频教程

php artisan view:cache -vv

这是一个例子,你会看到新安装的 Laravel 9.37 的情况:

La dernière version de Laravel 9.37 est sortie, apportant ces nouveaux changements !

处理静默丢弃与属性丢失的方法

Aaron Francis 提供了为“静默丢弃”和“缺少属性”严格模式冲突注册处理程序的功能:

Model::handleMissingAttributeViolationUsing(
    function ($model, $key) {
        // ...
    });Model::handleDiscardedAttributeViolationUsing(
    function ($model, $keys) {
        // ...
    });

传递救援报告参数的闭包

@foremtehan 贡献了在使用 rescue() 时将可调用对象作为 $report 参数传递,以便你可以根据返回的布尔值有条件地报告错误:

rescue(fn() => 'error', fn() => 'rescue', function(Throwable $e){
    return $e instanceof SomeException;});

支持使用 Vite 预加载资源

Tim MacDonald 使用 Vite 预加载当前页面所需的资源。它现在是使用 Vite 的 Laravel 应用程序的默认行为。它如何工作的细节非常复杂,我建议阅读 Pull Request #44096. 此外,你还可以了解有关背后的一般概念的更多信息 预加载关键资源以提高加载速度.

查询构造器 RawValue方法

@eusonlito 贡献了 rawValue() 方法,支持使用SQL表达式来获取值。 以下是一些使用示例:

$first = TripModel::orderBy('date_at', 'ASC')
    ->rawValue('YEAR(`date_at`)');$last = TripModel::orderBy('date_at', 'DESC')
    ->rawValue('YEAR(`date_at`)');$fullname = UserModel::where('id', $id)
    ->rawValue('CONCAT(`first_name`, " ", `last_name`)');

发行说明

您可以在下方查看新功能和更新的完整列表,以及9.36.0 和 9.37.0之间的差异。以下发行说明来自 changelog:

v9.37.0

添加

  • 添加视图缓存时的可选详细输出 (#44673)
  • 允许传递闭包以挽救 $report 参数 (#44710)
  • 支持使用 Vite 预加载资源 (#44096)
  • 添加 Illuminate/Mail/Mailables/Content::htmlString() (#44703)

修复

  • 修复 model:show 注册 getAttribute() 作为空访问器 (#44683)
  • 修复 PendingCommand 中输出断言的预期 (#44723)

v9.36.4

添加

  • 为数据库查询生成器添加了原始值(并作为包装器雄辩) (#44631)
  • 添加 TransactionCommitting (#44608)
  • 添加 dontIncludeSource 到 CliDumper 和 HtmlDumper (#44623)
  • 添加 Illuminate/Filesystem/FilesystemAdapter::checksum()rrreee
  • Ceci est un exemple, vous Vous verrez le Laravel 9.37 nouvellement installé :
  •  La dernière version de Laravel 9.37 est sortie, apportant ces nouveaux changements !

Façons de gérer les suppressions silencieuses et les pertes d'attributs
  • Aaron Francis offre la possibilité d'enregistrer des gestionnaires pour les conflits en mode strict de « suppression silencieuse » et d'« attribut manquant » :
rrreee

Fermeture pour transmettre les paramètres du rapport de secours
  • @foremtehan a contribué à transmettre l'objet appelable en tant que paramètre $report lors de l'utilisation de rescue() afin que vous puissiez signaler conditionnellement les erreurs en fonction de la valeur booléenne renvoyée :
  • rrreee

Prend en charge le préchargement des ressources à l'aide de ViteTim MacDonald Utilisez Vite pour précharger les ressources requises pour la page actuelle. C'est désormais le comportement par défaut pour les applications Laravel utilisant Vite. Les détails de son fonctionnement sont assez complexes et je vous recommande de lire la Pull Request #44096. Vous pouvez également en savoir plus sur les concepts généraux derrière le préchargement des ressources clés pour améliorer la vitesse de chargement

🎜🎜🎜🎜Query Builder RawValue Method 🎜🎜🎜@. eusonlito a contribué à la méthode rawValue(), qui prend en charge l'utilisation d'expressions SQL pour obtenir des valeurs. Voici quelques exemples d'utilisation : 🎜rrreee🎜🎜🎜🎜Notes de version🎜🎜🎜Vous pouvez voir la liste complète des nouvelles fonctionnalités et mises à jour ci-dessous, ainsi que les différences entre 9.36.0 et 9.37.0. Les notes de version suivantes proviennent du journal des modifications : 🎜🎜🎜🎜🎜v9.37.0🎜🎜🎜🎜🎜 Ajouté 🎜🎜🎜 Sortie détaillée facultative lors de l'ajout de la mise en cache des vues (#44673) 🎜🎜 Autoriser le passage des fermetures pour enregistrer le paramètre $report (# 44710)🎜🎜Prise en charge de l'utilisation de Vite pour précharger les ressources (#44096)🎜🎜Ajouter Illuminate/Mail/Mailables/Content::htmlString() (#44703)🎜🎜🎜🎜🎜Fix🎜🎜🎜Fix Modèle: Afficher le registre getAtTribute () comme accessoire nul (# 44683) 🎜🎜fix Attente des assertions de sortie dans EntendeCommand (# 44723) 🎜🎜🎜🎜🎜🎜v9.36.4🎜🎜🎜🎜🎜add 🎜🎜🎜 pour le constructeur de requête de base de données ajouté ajouté ajouté ajouté ajouté à Builder Builder ajouté ajouté ajouté à Database Query Builder ajouté valeurs primitives (et comme wrapper pour Eloquent) (#44631)🎜🎜Ajout de TransactionCommitting (#44608)🎜🎜Ajout de dontIncludeSource à CliDumper et HtmlDumper (#44623)🎜🎜Ajout de Illuminate/Filesystem/FilesystemAdapter::checksum ( ) (#44660)🎜🎜Ajouter des gestionnaires pour les suppressions silencieuses et les conflits d'attributs manquants (#44664)🎜🎜🎜🎜🎜Restore🎜🎜🎜Restore" Autoriser l'utilisation de MustVerifyEmail comme clé primaire sur les modèles sans identifiant » (#44672 ) 🎜🎜🎜🎜🎜Modifier 🎜🎜🎜 Créer une nouvelle instance de pack de paramètres Json lors de la demande de clonage (#44671) 🎜🎜Empêcher le fournisseur de démarrer lors de l'exécution d'env:decrypt (#44654) 🎜🎜🎜🎜🎜🎜 v9.36.3🎜 🎜

Restaurer

  • Restaurer la micro-optimisation de l'événement de vue (#44653)

fix

  • Onglet de la barre latérale corrigé, effacer la vue du cache : effacer (#44643)
  • fixIlluminate/Database/Eloquent/Model::offsetExists() (#44642)
  • Ignorer l'usine entre le cache du composant et les tests (#44648)

Modifier

  • Bump Testbench dépendances (#44651)

v9.36.2

Corrigé

    Assurez-vous d'afficher les créateurs et les compositeurs sont appelés lorsque * existe (#44636) //laravel -news.com/laravel-9-37-0
  • Adresse de traduction : https://learnku.com/laravel/t/72839

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer