Laravel 8.76 Dirilis
Tim Laravel telah merilis 8.76, yang mencakup metode pengujian afterRefreshingDatabase(), dukungan untuk qualifier tersembunyi MySQL, metode string baru, dan perubahan terbaru pada cabang v8.x.
Setelah memperbarui metode pengujian basis data
Luke Downing menyediakan metode `afterRefreshingDatabase` yang dapat Anda gunakan dalam pengujian untuk menyemai data ke pengujian Anda segera setelah melakukan migrasi (lihat deskripsi PR untuk informasi lebih lanjut).
Berikut ini adalah contoh pull request cara menggunakan metode ini:
abstract class TestCase extends BaseTestCase
{
use CreatesApplication;
use LazilyRefreshDatabase;
protected function afterRefreshingDatabase()
{
$this->artisan('db:seed', [
'--class' => RoleAndPermissionSeeder::class
]);
}
}
@marvin-wtt berkontribusi untuk mengesampingkan resolusi pengikatan rute model anak melalui metode `resolveRouteBindingQuery`. Lihat PullRequest#39929 untuk informasi lebih lanjut.
Pemeriksaan Boolean untuk kode status kesalahan 4xx umum
Adam Rodriguez menyediakan metode `forbidden()` dan `unauthorized` di kelas `Response``. Metode ini membersihkan logika di sekitar keadaan ini dengan benar.
// Before
if ($response->status() === 401) {
// ...
}
if ($response->status() === 403) {
// ...
}
// After
if ($response->unauthorized()) {
// ...
}
if ($response->forbidden()) {
// ...
}
Menyembunyikan kualifikasi untuk kolom MySQL
Oliver Matla telah berkontribusi pada dukungan untuk pengubah tersembunyi yang diperkenalkan di MySQL v8.0.23. Jika kolom ditandai sebagai tersembunyi, kolom tersebut tidak ditampilkan secara implisit (yaitu, SELECT *) dan tidak terhidrasi dalam model Laravel. Kolom ini masih dapat dipilih secara eksplisit, jadi akan berguna untuk menghilangkan kolom ini kecuali Anda membutuhkan data secara eksplisit.
Schema::table('users', function (Blueprint $table) {
$table->string('secret')->nullable()->invisible();
});
Fitur ini saat ini hanya tersedia di MySQL.
Dukungan string untuk substr_replace()
Ralph J.Smit menyediakan `substr_replace()` untuk `Str` dan kelas `Stringable`.
// Insert a string at a certain position
$string = '1300';
$result = Str::substrReplace($string, ':', 2, 0);
// '13:00'
// Replace the remainder of a string
$result = (string) Str::of('Laravel Framework')
->substrReplace('– The PHP Framework for Web Artisans', 8);
// 'Laravel – The PHP Framework for Web Artisans'
Catatan rilis
Anda dapat melihat daftar lengkap fitur dan pembaruan baru di bawah ini, serta perbedaan antara 8.75.0 dan 8.76.0 di GitHub. Catatan rilis berikut diambil langsung dari log perubahan.
v8.76.0
Ditambahkan
- Menambahkan kemungkinan untuk menyesuaikan resolusi pengikatan akar model anak (#39929)
- Menambahkan Illuminate / Http / Client / Response :: reason() (#39972)
- Menambahkan metode pengujian afterRefreshingDatabase (#39978)
- Menambahkan unauthorized() dan forbidden() ke Illuminate/Http/Client/Response (#39979)
- Publikasikan view-component.stub dengan perintah stub:publish (#40007)
- Menambahkan kualifikasi tersembunyi ke kolom MySQL (#40002)
- Menambahkan metode `Str::substrReplace()` dan `Str::of($string)->substrReplace()` (#39988)
Memberpaiki
- Memperbaiki pemanggian parent dalam view (#39909)
- Memperbaiki metode permintaan dump dan dd (#39931 )
- Memperbaiki pemadaman php8.1 di ValidatesAttributes::checkDateTimeOrder (#39937)
- Memperbaiki withTrashed dalam pemeriksaan rute ketika SoftDeletes digunakan dalam model(#39958)
- Memperbaiki model:prune --pretend untuk model perintah untuk model yang menggunakan SoftDeletes (#39991)
- Memperbaiki SoftDeletes hanya akan terus menyetel properti "yang ada" ke false jika penghapusan berhasil (#39987).
- Memperbaiki kesalahan memori yang dapat terjadi saat menghapus nilai dari cache driver Redis menggunakan kunci referensi (#39939)
- Memperbaiki kegagalan validasi kata sandi untuk mengizinkan kesalahan setelah aturan minimum (#40030)
berubah
- Validasi enum gagal dengan enum murni (#39926)
- Hapus deskripsi berlebihan & lokalkan template (#39928)
- Memperbaiki penghentian pelaporan saat logger belum siap (#39938)
- Ganti titik lolos dengan tempat penampung dalam parameter aturan dependen (#39935)
- passthru dari properti ke objek kueri yang mendasari (127334a)