Laravel 8.77 Telah Dirilis - CRUDPRO

Laravel 8.77 Telah Dirilis

Tim Laravel telah merilis 8.77 dengan atribut pemeran / pengakses yang ditingkatkan, metode tanggal permintaan () untuk mengakses data sebagai instance DateTime, validasi alamat MAC, kemampuan untuk menentukan URL sementara khusus pada disk penyimpanan, dan di v8. Saya membuat perubahan baru-baru ini. x cabang.

Atribut pemeran/aksesori yang ditingkatkan

Taylor Otwell telah berkontribusi pada cara baru untuk mendefinisikan pengakses dan mutator atribut.

// Old, two-method approach
public function setTitleAttribute($value)
{
    $this->attributes['title'] = strtolower($value);
}
 
// New Approach
protected function title(): Attribute
{
    return new Attribute(
        set: fn ($value) => strtolower($value),
    );
}

Berikut ini adalah contoh implementasi get and set:

/**
 * Get the user's title.
 */
protected function title(): Attribute
{
    return new Attribute(
        get: fn ($value) => strtoupper($value),
        set: fn ($value) => strtolower($value),
    );
}

Lihat deskripsi permintaan tarik dan deskripsi fitur ini untuk informasi lebih lanjut:

@Italo menyediakan metode `date()` ke instance permintaan, yang berguna untuk mendapatkan instance tanggal dari data permintaa:

// Before
if ($date = $request->input('when')) {
    $date = Carbon::parse($datetime);
}
 
// After
$date = $request->date('when');

Untuk setiap koneksi awalan

Ben Tidy berkontribusi pada kemampuan untuk menggunakan awalan untuk setiap koneksi Predis. Berikut ini adalah contoh permintaan tarik 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:'),
    ],
],

Aturan validasi alamat MAC

Bilal Al-Massry menyediakan aturan validasi `mac_address` untuk memvalidasi 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());

Tentukan metode URL penyimpanan sementara

Ash Allen berkontribusi pada kemampuan untuk menentukan logika URL sementara khusus untuk fasad penyimpanan. Berikut ini adalah 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));

Catatan rilis

Anda dapat melihat daftar lengkap fitur dan pembaruan baru di bawah ini dan perbedaan antara 8.76.0 dan 8.77.0 di GitHub. Catatan rilis berikut diambil langsung dari log perubahan.

v8.77.0


ditambahkan

  • Atribut pemeran/aksesori yang ditingkatkan (#40022)
  • Ditambahkan Illuminate/View/Factory::renderUnless() (#40077)
  • Menambahkan analisis tanggal dan waktu untuk meminta instance (#39945)
  • Anda dapat menggunakan Predis untuk setiap awalan koneksi (#40083)
  • Menambahkan aturan untuk memverifikasi alamat MAC (#40098)
  • Menambahkan kemampuan untuk menentukan makro URL sementara untuk penyimpanan (#40100)

Permanen

  • Memperbaiki kesalahan memori yang dapat terjadi saat menghapus nilai dari cache driver Redis menggunakan kunci referensi (#40039)
  • Menambahkan `Illuminate/Filesystem/FilesystemManager::setApplication()` (#40058)
  • Memperbaiki argumen yang diteruskan di doesntContain (739d847 )
  • Konversi Pesan Aturan Enumerasi (#40089)
  • Validasi tanggal tetap (#40088)
  • Jangan izinkan model kecuali bersama-sama di PruneCommand.php (f62fe66)
  • Berubah

  • Lewati Eloquent\Query::explain fungsi ke Query\Builder:explain untuk menggunakan perintah anotasi khusus basis data (#40075).