Heim  >  Artikel  >  PHP-Framework  >  Laravel 8.77 ist veröffentlicht, diese Funktionen wurden verbessert!

Laravel 8.77 ist veröffentlicht, diese Funktionen wurden verbessert!

藏色散人
藏色散人nach vorne
2022-01-20 16:59:502210Durchsuche

Die folgende Tutorial-Kolumne von Laravel stellt Ihnen vor: „Laravel 8.77 ist veröffentlicht, diese Funktionen wurden verbessert“, ich hoffe, es wird für alle hilfreich sein!

Das Laravel-Team veröffentlichte Version 8.77 mit Verbesserungen an Eigenschaftskonvertierungen/Accessoren, der Anforderung der date()-Methode für den Zugriff auf Daten als DateTime-Instanz, der MAC-Adressvalidierung, der Möglichkeit, benutzerdefinierte temporäre URLs auf der Speicherfestplatte zu definieren, und in Version 8. x Der zuletzt geänderte Zweig. [Empfohlen: „Laravel-Video-Tutorial“]

Eigenschaftskonvertierung/Verbesserung von Zugriffsmethoden

Taylor Otwell bietet eine neue Möglichkeit, Eigenschaftszugriffsfunktionen und -modifikatoren zu definieren:

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

Hier ist ein Beispiel mit get- und set-Implementierung von:

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

Um mehr zu erfahren, schauen Sie sich den Pull-Request für diese Funktion sowie die Beschreibung und Diskussion dieser Funktion an.

Datetime-Parsing wurde zu Anforderungsinstanzen hinzugefügt

@Italo bietet eine date()-Methode für Anforderungsinstanzen, wodurch es sehr praktisch ist, Datumsinstanzen aus Anforderungsdaten abzurufen: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
  • Alle Präfixe für Verbindungen
  • Ben Tidy hilft bei der Verwendung von Präfixen pro Verbindung in Predi. Das Folgende ist ein Beispiel für eine Pull-Anfrage für eine Redis-Konfiguration:
  • rrreee
  • MAC-Adressvalidierungsregel
  • Bilal Al-Massry hat die mac_address-Validierungsregel zur Validierung von MAC-Adressen beigesteuert:
  • rrreee
  • Definieren Sie das Temporäre URL für Speichermethode

Ash Allen hat die Möglichkeit beigesteuert, benutzerdefinierte temporäre URL-Logik für die Speicherfassade zu definieren. Hier sind ein paar Beispiele für Pull-Requests:

rrreee
    Versionshinweise
  • Die vollständige Liste der neuen Funktionen und Updates sowie der Unterschiede zwischen 8.76.0 und 8.77.0 finden Sie unten auf Github. Die folgenden Versionshinweise stammen direkt aus dem Changelog:

v8.77.0

Hinzugefügt

Property-Konvertierung/Accessor-Verbesserungen (#40022)
🎜Illuminate/View/Factory::renderUnless()hinzugefügt > (#40077)🎜🎜Datum/Uhrzeit-Analyse zur Anforderungsinstanz hinzugefügt (#39945)🎜🎜Für jede Verbindung ist die Verwendung von Präfixen auf Predis aktiviert (#40083)🎜🎜Regeln zur Überprüfung von MAC-Adressen hinzugefügt (#40098)🎜🎜 Möglichkeit zum Definieren hinzugefügt Temporäre URLs für die Speicherung (#40100)🎜🎜🎜Behoben🎜🎜🎜Ein Fehler wegen unzureichendem Speicher wurde behoben, der im Redis-Treiber beim Löschen von Werten aus dem Cache durch Referenzieren eines Schlüssels auftreten konnte (#40039)🎜🎜Neuer Illuminate /Filesystem/FilesystemManager::setApplication() (#40058)🎜🎜Parameterübergabe in der Methode „dontContain()“ korrigiert (739d847)🎜🎜Enum-Regelnachricht übersetzen (#40089)🎜🎜Fehler bei der Datumsvalidierung behoben (#40088) 🎜🎜Die Verwendung von Modellen mit „außer“ ist in PruneCommand.php (f62fe66) nicht zulässig. 🎜🎜🎜Geändert Ursprüngliche Adresse: https://laravel-news.com/laravel-8-77-0🎜🎜Übersetzungsadresse: https://learnku.com/laravel/t/64602🎜🎜

Das obige ist der detaillierte Inhalt vonLaravel 8.77 ist veröffentlicht, diese Funktionen wurden verbessert!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen