Berita

Laravel v9.31 Telah Dirilis

Diposting oleh I. B. Gd Pramana A. Putra pada 24 Sep 22, diperbarui pada 26 Sep 22

Tim inti Laravel telah merilis versi 9.31 dengan pembaruan seperti pengendali durasi request lifecycle, update model tanpa merubah timestamp, batch palsu untuk testing, dan masih banyak lagi.

Pengendali durasi request lifecycle

Tim MacDonald menambahkan sebuah callback untuk mengendalikan ketika request lifecycle lebih lama dari waktu yang telah ditentukan:

use Carbon\CarbonInterval as Interval;
use Illuminate\Contracts\Http\Kernel;
 
public function boot()
{
    if ($this->app->runningInConsole()) {
        return;
    }
 
    $kernel = $this->app[Kernel::class];
    $kernel->whenRequestLifecycleIsLongerThan(
        Interval::seconds(1),
        fn ($startedAt, $request, $response) => /* ... */
    );
}

Callback ini mirip seperti yang ada pada perilisan Laravel 9.18 untuk durasi kueri database.

Fitur Model "without timestamps"

Tim MacDonald menambahkan fungsi statis dimana updated_at tidak akan diperbarui:

$user = User::first();
 
// `updated_at` is not changed...
 
User::withoutTimestamps(
    fn () => $user->update(['reserved_at' => now()])
);

Vite manifestHash function

Enzo Innocenzi berkontribusi sebuah method contributed a manifestHash() untuk kelas Vite, yang mengembalikan hash unik jika manifestasi telah ada. Penambahan ini juga bisa digunakan untuk meng-invalidasi asset. Lihat Pull Request #44136 untuk detail lebih lanjut.

Batch buatan

Taylor Otwell menambahkan fake batches atau batch buatan:

Sebelumnya sangat sulit untuk melakukan test jika suatu batch dibatalkan atau jika ada job baru yang ditambahkan ke job batches, dimana kita harus membuat sebuah FakeBatch secara manual dan meng-override method cancel / add. Pembaruan ini mengatasi isu tersebut.

[$job, $batch] = (new TestJob)->withFakeBatch();
 
$job->handle();
 
$this->assertTrue($batch->cancelled());
$this->assertNotEmpty($batch->added);

Method getAppends() pada model

Arturo Rodríguez menambahkan aksesor pada model untuk mendapatkan aksesor-aksesor yang added an accessor method to Model to get the accessors that are being diikutkan pada array model. Hal ini akan memudahkan mapping custom model:

$model->getAppends();

Method statis Str wrap

Steve Bauman menambahkan method static Str::wrap(), yang dulunya hanya tersedia melalui Stringable:

Str::wrap('-bar-', 'foo', 'baz'); // 'foo-bar-baz'
str('-bar-')->wrap('foo', 'baz'); // 'foo-bar-baz'

Macroable vite

Tim MacDonald menambahkan trait Macroable pada to Illuminate\Foundation\Vite untuk membuat alias-alias pada konfigurasi JS mu:

Vite::macro('image', fn ($asset) => $this->asset("resources/images/{$asset}"));
 
// Usage: <img src="{{ Vite::image('profile.png') }}" ... >

Lihat Pull Request #44198 untuk informasi lebih lanjut.

Release Notes

Kamu bisa melihat deretan fitur-fitur dan pembaruan baru serta perbedaan antara 9.30.0 dan 9.31.0 di GitHub. Catatan pembaruan ini berasal dari changelog:

9.31.0

Ditambahkan

  • Added unique deferrable initially deferred constants for PostgreSQL (#44127)
  • Request lifecycle duration handler (#44122)
  • Added Model::withoutTimestamps(...) (#44138)
  • Added manifestHash function to Illuminate\Foundation\Vite (#44136)
  • Added support for operator <=> in /Illuminate/Collections/Traits/EnumeratesValues::operatorForWhere() (#44154)
  • Added that Illuminate/Database/Connection::registerDoctrineType() can accept object as well as classname for new doctrine type (#44149)
  • Added Fake Batches (#44104, #44173)
  • Added Model::getAppends() (#44180)
  • Added missing Str::wrap() static method (#44207)
  • Added require symfony/uid (#44202)
  • Make Vite macroable (#44198)

Diperbaiki

  • Async fix in Illuminate/Http/Client/PendingRequest (#44179)
  • Fixes artisan serve command with PHP_CLI_SERVER_WORKERS environment variable (#44204)
  • Fixed InteractsWithDatabase::castAsJson($value) incorrectly handles SQLite Database (#44196)

Dirubah

  • Improve Blade compilation exception messages (#44134)
  • Improve test failure output (#43943)
  • Prompt to create MySQL db when migrating (#44153)
  • Improve UUID and ULID support for Eloquent (#44146)

Disadur dari: Laravel News - Laravel 9.31 released

Sebisa mungkin saya selalu merilis berita terbaru seputar IT & Tech Development. Jika kamu menghargai berita yang saya hadirkan, maka jangan lupa untuk mentraktir saya secangkir kopi atau makanan ringan :)

Dukung saya dengan · paypal · buymeacoffee · ko-fi · trakteer
Jawaban & Respon
    Belum ada komentar

Login dulu

Kamu harus login terlebih dahulu sebelum memberikan komentar pada pos ini.