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

Laravel 9.35 dikeluarkan! Lihat apakah perubahan baharu?

藏色散人
藏色散人ke hadapan
2022-10-27 16:05:281616semak imbas

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'),
        ];
    }
}
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();

ialah pintasan untuk membolehkan semua yang berikut: shouldBeStrict()

Model::preventLazyLoading();
Model::preventSilentlyDiscardingAttributes();
Model::preventsAccessingMissingAttributes();
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']);
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!

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