Maison  >  Article  >  cadre php  >  Laravel 8.77 est sorti, ces fonctionnalités ont été améliorées !

Laravel 8.77 est sorti, ces fonctionnalités ont été améliorées !

藏色散人
藏色散人avant
2022-01-20 16:59:502201parcourir

La colonne tutorielle suivante de Laravel vous présentera "Laravel 8.77 est sorti, ces fonctions ont été améliorées", j'espère qu'elle sera utile à tout le monde !

L'équipe Laravel a publié la version 8.77 avec des améliorations des conversions/accesseurs de propriétés, demandant la méthode date() pour accéder aux données en tant qu'instance DateTime, la validation de l'adresse MAC, la possibilité de définir des URL temporaires personnalisées sur le disque de stockage et dans la v8. x La dernière branche modifiée. [Recommandé : "tutoriel vidéo laravel"]

Conversion de propriété/amélioration des accesseurs

Taylor Otwell propose une nouvelle façon de définir les accesseurs et modificateurs de propriété :

// 之前, 两个方法的方式
public function setTitleAttribute($value)
{
    $this->attributes['title'] = strtolower($value);
}
 // 新的方式
protected function title(): Attribute
{
    return new Attribute(
        set: fn ($value) => strtolower($value),
    );
}

Voici un exemple avec get et set Implémentation de :

/**
 * 获取用户的标题
 */
protected function title(): Attribute
{
    return new Attribute(
        get: fn ($value) => strtoupper($value),
        set: fn ($value) => strtolower($value),
    );
}

Pour en savoir plus, consultez la pull request pour cette fonctionnalité ainsi que la description et la discussion de cette fonctionnalité.

L'analyse datetime a été ajoutée aux instances de requête

@Italo fournit une méthode date() pour les instances de requête, ce qui rend très pratique l'obtention d'instances de date à partir des données de requête :date()方法,使得从请求数据获取日期实例变得非常方便:

// 以前
if ($date = $request->input('when')) {
    $date = Carbon::parse($datetime);
}
// 之后
$date = $request->date('when');

每个连接的前缀

Ben Tidy 有助于在Predi的每个连接基础上使用前缀。以下是Redis配置的pull请求的示例:

'redis' => [
    'client' => env('REDIS_CLIENT', 'predis'),
     'default' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_DB', 0),
        'prefix' => env('REDIS_PREFIX', 'prefix:'),
    ],
     'cache' => [
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_CACHE_DB', 1),
        'prefix' => env('REDIS_PREFIX', 'prefix2:'),
    ],
],

MAC 地址验证规则

Bilal Al-Massry 贡献了 mac_address 验证规则, 用于验证 MAC 地址:

$trans = $this->getIlluminateArrayTranslator();
$v = new Validator($trans, ['mac' => 'foo'], ['mac' => 'mac_address']);
$this->assertFalse($v->passes());
 $trans = $this->getIlluminateArrayTranslator();
$v = new Validator($trans, ['mac' => '01-23-45-67-89-ab'], ['mac' => 'mac_address']);
$this->assertTrue($v->passes());
 $trans = $this->getIlluminateArrayTranslator();
$v = new Validator($trans, ['mac' => '01-23-45-67-89-AB'], ['mac' => 'mac_address']);
$this->assertTrue($v->passes());

定义存储的临时 URL 方法

Ash Allen 贡献了为 Storage 门面定义自定义临时URL逻辑的能力。 以下是拉取请求的几个示例:

Storage::disk('local')
    ->buildTemporaryUrlUsing(function ($path, $expiration, $options) {
      return 'using local';
    });
 // $url is: 'using local'
$url = Storage::temporaryUrl('file.jpg', now()->addMinutes(5));

发行说明

您可以在 github 上看到以下新功能和更新的完整列表以及 8.76.0 and 8.77.0 之间的差异。 以下发行说明直接来自 变更日志:

v8.77.0

新增

  • 属性转换 / 访问器改进 (#40022)
  • 新增 Illuminate/View/Factory::renderUnless() (#40077)
  • 向 Request 实例添加日期时间解析 (#39945)
  • 使每个连接都可以在 Predis 上使用前缀 (#40083)
  • 添加了验证 MAC 地址的规则 (#40098)
  • 添加了为存储定义临时 URL 的功能 (#40100)

已修复

  • 修复 Redis 驱动程序中通过引用 key 从缓存中删除 values 时可能出现的内存不足错误 (#40039)
  • 新增 Illuminate/Filesystem/FilesystemManager::setApplication()rrreee
  • Chaque préfixes pour les connexions
  • Ben Tidy aide à utiliser les préfixes connexion par connexion dans Predi. Voici un exemple de pull request pour une configuration Redis :
  • rrreee
  • Règle de validation d'adresse MAC
  • Bilal Al-Massry a contribué à la règle de validation mac_address pour valider les adresses MAC :
  • rrreee
  • Définissez le temporaire URL pour la méthode de stockage

Ash Allen a contribué à la possibilité de définir une logique d'URL temporaire personnalisée pour la façade de stockage. Voici quelques exemples de pull request :

rrreee
    Release Notes
  • Vous pouvez voir la liste complète des nouvelles fonctionnalités, mises à jour et différences entre 8.76.0 et 8.77.0 ci-dessous sur github. Les notes de version suivantes sont tirées directement du journal des modifications :

v8.77.0

Ajouté

Améliorations de la conversion/de l'accès aux propriétés (#40022)
🎜Ajout de Illuminate/View/Factory::renderUnless() (#40077)🎜🎜Ajout de l'analyse datetime à l'instance de requête (#39945)🎜🎜Activation de chaque connexion pour utiliser des préfixes sur Predis (#40083)🎜🎜Ajout de règles pour vérifier les adresses MAC (#40098)🎜🎜 Ajout de la possibilité de définir URL temporaires pour le stockage (#40100)🎜🎜🎜Corrigé🎜🎜🎜Correction d'une erreur de mémoire insuffisante qui pouvait survenir dans le pilote Redis lors de la suppression de valeurs du cache en faisant référence à une clé (#40039)🎜🎜Nouveau Illuminate /Filesystem/FilesystemManager::setApplication() (#40058)🎜🎜Correction du paramètre passant dans la méthode makesntContain() (739d847)🎜🎜Traduire le message de règle Enum (#40089)🎜🎜Correction de la validation de la date (#40088) 🎜🎜L'utilisation de modèles avec except n'est pas autorisée dans PruneCommand.php (f62fe66)🎜🎜🎜Changed🎜🎜🎜Utiliser la fonctionnalité spécifique à la commande d'explication de base de données pour QueryBuilder:explain via la méthode EloquentQuery::explain (# 40075)🎜🎜🎜🎜🎜 Adresse originale : https://laravel-news.com/laravel-8-77-0🎜🎜Adresse de traduction : https://learnku.com/laravel/t/64602🎜🎜

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