Rumah  >  Artikel  >  rangka kerja php  >  Laravel 8.77 dikeluarkan, ciri-ciri ini telah dipertingkatkan!

Laravel 8.77 dikeluarkan, ciri-ciri ini telah dipertingkatkan!

藏色散人
藏色散人ke hadapan
2022-01-20 16:59:502201semak imbas

Berikut ialah pengenalan kepada "Laravel 8.77 dikeluarkan, fungsi ini telah dipertingkatkan" daripada lajur tutorial Laravel Saya harap ia akan membantu semua orang!

Pasukan Laravel mengeluarkan versi 8.77 dengan penambahbaikan pada penukaran/aksesor harta, meminta kaedah date() untuk mengakses data sebagai contoh DateTime, pengesahan alamat MAC, keupayaan untuk menentukan URL sementara tersuai pada cakera storan, dan Cawangan perubahan terkini dalam v8.x. [Disyorkan: "Tutorial Video Laravel"]

Penukaran atribut/peningkatan aksesor

Taylor Otwell menyediakan cara baharu untuk mentakrifkan pengakses dan pengubah atribut:

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

Berikut ialah contoh dengan pelaksanaan get dan set:

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

Untuk mendapatkan maklumat lanjut, sila lihat permintaan tarik tentang ciri ini serta perihalan ciri dan perbincangan ini.

Penghuraian masa tarikh telah ditambahkan pada contoh permintaan

@Italo menyediakan kaedah date() untuk contoh permintaan, menjadikannya sangat mudah untuk mendapatkan contoh tarikh daripada data permintaan:

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

Awalan setiap sambungan

Ben Tidy membantu menggunakan awalan pada asas setiap sambungan dalam Predi. Berikut ialah contoh permintaan tarik untuk konfigurasi Redis:

'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:'),
    ],
],

Peraturan pengesahan alamat MAC

Bilal Al-Massry menyumbangkan mac_address peraturan pengesahan untuk mengesahkan alamat 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());

Mentakrifkan Kaedah URL Sementara Storan

Ash Allen menyumbang keupayaan untuk mentakrifkan logik URL sementara tersuai untuk fasad Storan. Berikut ialah beberapa contoh permintaan tarik:

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

Nota Keluaran

Anda boleh melihat senarai penuh ciri baharu dan kemas kini di bawah pada github dengan perbezaan 8.76.0 dan 8.77.0 antara. Nota keluaran berikut diambil terus daripada log perubahan:

v8.77.0

Ditambah

  • Penukaran hartanah/peningkatan akses (#40022)
  • Ditambahkan Illuminate/View/Factory::renderUnless() (#40077)
  • Tambahkan penghuraian masa tarikh pada Permintaan contoh (#39945)
  • Dayakan setiap sambungan menggunakan awalan pada Predis (#40083)
  • Ditambah peraturan untuk mengesahkan alamat MAC (#40098)
  • Keupayaan tambahan untuk menentukan URL sementara untuk storan (#40100)

Tetap

  • Betulkan ralat memori yang mungkin berlaku apabila memadamkan nilai daripada cache dengan merujuk kekunci dalam pemacu Redis (#40039)
  • Baharu Illuminate/Filesystem/FilesystemManager::setApplication() (#40058)
  • Ditetapkan dalam penghantaran Parameter kaedah doesntContain() (739d847)
  • Terjemah mesej peraturan Enum (#40089)
  • Betulkan pengesahan tentang tarikh (#40088)
  • dalam PruneCommand.php Model tidak dibenarkan digunakan dengan kecuali (f62fe66)

Diubah

  • Gunakan fungsi khusus untuk perintah explain pangkalan data melalui kaedah EloquentQuery::explain kepada QueryBuilder:explain (# 40075)

Alamat asal: https://laravel-news.com/laravel-8-77-0

Alamat terjemahan: https:// learnku.com /laravel/t/64602

Atas ialah kandungan terperinci Laravel 8.77 dikeluarkan, ciri-ciri ini telah dipertingkatkan!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:learnku.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam