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

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

藏色散人
Freigeben: 2022-01-22 09:08:45
nach vorne
2243 Leute haben es durchsucht

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),
    );
}
Nach dem Login kopieren

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),
    );
}
Nach dem Login kopieren

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');
Nach dem Login kopieren

每个连接的前缀

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:'),
    ],
],
Nach dem Login kopieren

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());
Nach dem Login kopieren

定义存储的临时 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));
Nach dem Login kopieren

发行说明

您可以在 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!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage