Rumah > rangka kerja php > Laravel > Laravel 9.35 dikeluarkan! Lihat apakah perubahan baharu?

Laravel 9.35 dikeluarkan! Lihat apakah perubahan baharu?

藏色散人
Lepaskan: 2022-10-27 16:05:28
ke hadapan
1641 orang telah melayarinya

Lajur tutorial Laravel berikut akan memperkenalkan kepada anda perubahan dalam versi terkini Laravel 9.35 saya harap ia akan membantu semua orang!

Pasukan Laravel mengeluarkan versi 9.35, yang mempunyai tatabahasa e-mel ganti baharu yang menarik, fungsi "mod ketat" bagi Eloquent.

Sintaks E-mel Ganti

Taylor Otwell menyumbang sintaks boleh e-mel dengan mengembalikan "objek padat yang menyatakan kandungan dan sifat boleh e-mel".

Berikut ialah contoh perihalan permintaan tariknya:

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Address;
use Illuminate\Mail\Mailables\Attachment;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;

class InvoicePaid extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * 创建一个邮件实例
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * 获取邮件信封
     *
     * @return \Illuminate\Mail\Mailables\Envelope
     */
    public function envelope()
    {
        return new Envelope(
            subject: 'Invoice Paid',
            cc: [new Address('foo@example.com', 'Example Name')],
            tags: [],
            metadata: [],
        );
    }

    /**
     * 获取邮件内容定义
     *
     * @return \Illuminate\Mail\Mailables\Content
     */
    public function content()
    {
        return new Content(
            view: 'html-view-name',
            text: 'text-view-name',
        );
    }

    /**
     * 获取邮件的附件
     *
     * @return \Illuminate\Mail\Mailables\Attachment[]
     */
    public function attachments()
    {
        return [
            Attachment::fromPath('/path/to/file'),
        ];
    }
}
Salin selepas log masuk
Cara tradisional untuk mentakrifkan e-mel menggunakan

tidak akan dialih keluar. Apa yang saya suka tentang contoh di atas ialah menggunakan parameter bernama PHP 8 adalah lebih jelas. build()

Mod "ketat" fasih

Chris Morrell dan Taylor Otwell bekerjasama untuk membangunkan mod ketat Eloquent, yang menyokong ciri berikut:

    Tiada pemuatan malas
  • Pengecualian apabila menetapkan sifat tidak boleh diisi
  • Pengecualian apabila mengakses sifat yang tidak dapat diambil atau tidak wujud
Untuk menggunakan mod ketat dalam pembangunan, tambah yang berikut Dalam kaedah

daripada pembekal perkhidmatan berdaftar: Kaedah boot()

Model::shouldBeStrict();
Salin selepas log masuk

ialah pintasan untuk membolehkan semua yang berikut: shouldBeStrict()

Model::preventLazyLoading();
Model::preventSilentlyDiscardingAttributes();
Model::preventsAccessingMissingAttributes();
Salin selepas log masuk
Muatkan model usang menggunakan penghalaan sumber

Andrew Brown menyediakan keupayaan untuk memuatkan model yang tidak digunakan dengan penghalaan sumber menggunakan sintaks penghalaan berikut:

// 所有终结点
Route::resource('users', UserController::class)->withTrashed();

// 仅`显示`
Route::resource('users', UserController::class)->withTrashed(['show']);
Salin selepas log masuk
Nota Keluaran

Anda boleh lihat di bawah pada GitHub Senarai penuh ciri dan kemas kini serta perbezaan baharu antara [9.34.0] dan 9.35.0](github.com/laravel/framework/compa...) Nota keluaran berikut diambil terus daripada log perubahan:

v9.35.0

Ditambah

    Benarkan model yang tidak digunakan untuk dimuatkan untuk penghalaan sumber (#44405) ke
  • dan lain-lain (#44283)
  • Perisian tengah pengawal yang tidak menyelesaikan pengawal (#44516) Illuminate/Database/Eloquent/Model::shouldBeStrict()
  • Pilih sintaks yang boleh dihantar (#44462)
  • Tetap

Memperbaiki masalah fungsi agregat (denganSum, dsb.) dalam hubungan banyak-ke-banyak rujukan sendiri (#44286)

    Memperbaiki masalah menggunakan atribut kelas statik sebagai templat atribut (#44473)
  • Boleh dilalui harus diutamakan berbanding JsonSerializable dalam Nilai Enumerate ​​(#44456)
  • Ditetapkan
  • jadi ia adalah pilihan boolean, bukan nilai (#44505)
  • make:cast --inboundUbah suai kaedah ujian

. Gunakan json_encode untuk menjadikan mesej ralat lebih mudah dibaca (#44397)

    Biar
  • mengembalikan nilai pulangan panggilan balik (#44457)
  • Hanya muatkan model usang pada laluan yang berkaitan (#44478 ) Model::without Timestamps()
  • Tambah sambungan PHP tambahan pada fungsi shouldBlockPhpUpload (#44512)
  • Daftar cutInternals casters untuk objek bising terutamanya (#44514)
  • Gunakan kaedah dapatkan untuk mengakses Tetapan kawasan aplikasi (# 44521)
  • Hanya kembalikan respons bukan nol daripada saluran (09d53ee, 3944a3e)
  • Pemadanan saluran yang betul (#44531)
  • Pindahkan komponen mel (#44527)
  • Alamat asal: https://laravel-news.com/laravel-9-35-0
Alamat terjemahan: https://learnku.com/ laravel/t/ 72658

Atas ialah kandungan terperinci Laravel 9.35 dikeluarkan! Lihat apakah perubahan baharu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:learnku.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Isu terkini
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan