Perubahan Kata Kerja HTTP dalam PHP 8.4
PHP 8.4 dikeluarkan pada bulan November, dan anda serta pasukan anda tidak ragu-ragu telah bekerja keras memahami ciri baharu, penamatan dan perubahan yang mengiringi lelaran terbaru bahasa ini. ini termasuk perubahan pada kata kerja HTTP bukan POST.
Dalam blog ini, saya berjalan melalui latar belakang kata kerja HTTP dalam PHP, menjelaskan mengapa HTTP perubahan kata kerja dalam perkara PHP 8.4. Saya kemudian menyediakan panduan untuk pembangun untuk rujukan apabila melaksanakan perubahan ini dalam kod mereka.
Kata Kerja HTTP dalam PHP: Latar Belakang
PHP dibangunkan dengan mengambil kira web dan pengendalian borang yang disokong daripadanya hari-hari terawal. Pada asalnya dalam HTTP, pada dasarnya hanya terdapat dua kaedah melalui mana penyemak imbas boleh meminta halaman web: melalui GET atau POST. Walaupun bentuk HTML masih menyokong kedua-dua kaedah ini, JavaScript mempunyai keupayaan untuk menghantar permintaan HTTP menggunakan mana-mana kaedah HTTP, dan beberapa kit alat (cth. HTMX) malah boleh mengendalikan perkara ini dengan lancar untuk pembangun.
GET and POST HTTP Methods
Permintaan GET menghantar data borang melalui rentetan pertanyaan URL. Ini bermakna bahawa hasil borang boleh ditanda buku, diulang dan juga dicache. Oleh sebab itu, permintaan GET biasanya hanya digunakan untuk tindakan yang meminta keadaan tanpa mengubah keadaan: carian, hasil pengisihan, penapisan hasil, penomboran, dsb.
Jika anda ingin melakukan tindakan yang mungkin membuat perubahan dalam aplikasi — cth., memproses troli beli-belah, menghantar mesej sokongan, memuat naik imej, dsb. — anda akan menggunakan kaedah HTTP POST. Permintaan POST ialah dianggap bukan idempoten, bermakna mereka tidak boleh di-cache dan tidak sepatutnya diulang, kerana ia mempunyai kesan sampingan. Kesan tersebut mungkin bermakna sisipan, perubahan atau pemadaman dalam pangkalan data, operasi sistem fail, permintaan web atau sesuatu yang lain.
Dalam untuk mengautomasikan pengendalian data borang, PHP menyediakan beberapa pembolehubah superglobal yang ia diisi daripada permintaan masuk. $_GET diisi dengan argumen rentetan pertanyaan URL dan boleh diisi daripada sebarang kaedah permintaan. $_POST, walau bagaimanapun, hanya diisi daripada kandungan permintaan POST yang dibuat menggunakan aplikasi jenis kandungan/x-www-form-urlencoded, yang mungkin kelihatan seperti ini:
title=HTTP Verbs Changes in PHP 8.4&url=https://example.org/blog/php-8.4-http-verbs&author=Just Some Guy&tags[0]=php&tags[1]=http
PHP akan ambil itu dan isikan superglobal $_POST supaya ia menjadi seperti berikut:
<?php $_POST = [ 'title' => 'HTTP Verbs Changes in PHP 8.4', 'url' => 'https://example.org/blog/php-8.4-http-verbs', 'author' => 'Just Some Guy', 'tags' => ['php', 'http'], ];
Fakta bahawa PHP melakukan ini di sebalik tabir untuk anda adalah sebahagian daripada perkara yang menjadikan PHP begitu mudah untuk dipelajari dan dimulakan.
Selain itu, ia juga boleh mengendalikan jenis kandungan multipart/form-data, yang membolehkan penyemak imbas memuat naik fail selain menyediakan data borang. Apabila ia berbuat demikian, ia akan mengisi $_FILES tambahan superglobal, yang menyediakan maklumat mengenai fail yang dimuat naik; pembangun kemudian boleh mengesahkan dan pra-memproses fail tersebut sebelum menyimpan mereka di lokasi tetap.
Kaedah HTTP Lain
Terdapat lebih banyak kaedah HTTP daripada GET dan POST, dan pembangun untuk web selalunya akan mahu memilih kaedah yang berbeza untuk memberikan konteks kepada apa mereka cuba lakukan:
- PUT sering digunakan untuk menunjukkan bahawa data harus menggantikan data sedia ada.
- PATCH sering digunakan untuk menunjukkan bahawa kemas kini separa kepada rekod sedia ada adalah sedang dibuat.
- DELETE digunakan untuk menunjukkan rekod atau kandungan yang diserahkan harus dipadamkan atau ditandakan sebagai dipadamkan.
Walaupun penyemak imbas tidak menyokong ini secara asli (belum!), banyak rangka kerja dan perpustakaan JavaScript melakukannya.
Tetapi ada tangkapan: PHP tidak mengendalikan permintaan ini secara automatik. Dalam sebenarnya, anda perlu mengendalikan penghuraian ini sepenuhnya sendiri, yang mana boleh menjadi sangat bermasalah apabila anda juga mula mengendalikan muat naik fail sebagai serta data borang. (Jangan sekali-kali melancarkan penghurai anda sendiri!)
Perubahan kepada Kata Kerja HTTP Bukan POST
PHP 8.4 memperkenalkan kaedah request_parse_body():
[$_POST, $_FILES] = request_parse_body(?array $options = null);
The
fungsi menghuraikan permintaan masuk dengan cara yang sama seperti yang selalu ada
untuk permintaan POST, tetapi membolehkan anda menentukan pembolehubah ganti kepada
simpan data borang dan muat naik fail dalam (atau tulis ganti superglobal,
jika anda lebih suka). Anda juga boleh mengubah gelagat penghurai melalui hujah $options, dengan lebih lanjut mengenainya di bawah.
Corak biasa mungkin:
<?php if (in_array($_SERVER['REQUEST_METHOD'], ['PUT', 'PATCH', 'DELETE'], true)) { [$_POST, $_FILES] = request_parse_body(); }
(Walaupun jika anda sedang menggunakan rangka kerja, harapkan rangka kerja menjaga butiran itu untuk anda.)
Itu secara literal keseluruhan ciri. Fungsi mudah untuk disediakan tingkah laku turnkey yang anda sudah biasa dengan sebagai pembangun PHP. Ia tidak menjadi lebih baik daripada ini!
Kata Kerja HTTP dalam PHP 8.4: Panduan Pembangun
Sekarang bahawa kita telah membincangkan perubahan kepada kata kerja HTTP dalam PHP 8.4, mari lihat beberapa contoh untuk cara anda boleh menggunakan dan menerapkannya kemas kini dalam kod anda.
Jenis Kandungan yang Disokong
Sama seperti permintaan POST, request_parse_body() hanya akan menghuraikan permintaan dengan kandungan berikut jenis:
- application/x-www-form-urlencoded
- multipart/form-data
Dalam kes permohonan/x-www- form-urlencoded, $_FILES-setara tatasusunan (indeks 1 dalam tatasusunan yang dikembalikan) akan kosong. Jika kandungan jenis tidak disokong, fungsi akan membuang InvalidArgumentException.
php://input
PHP membolehkan anda memeriksa kandungan permintaan mentah melalui aliran php://input. Ini ialah strim buffer yang boleh (sehingga PHP 7.4) dibaca beberapa kali. Walau bagaimanapun, apabila menerima multipart/form-data kandungan, PHP menjadi agak merosakkan, atas sebab yang sangat baik: penimbalan fail boleh menyebabkan kandungan fail ditulis ke cakera dua kali, membawa kepada lebih banyak memori, storan dan penggunaan I/O.
Oleh itu, request_parse_body() TIDAK MESTI dipanggil dua kali, kerana ia akan menggunakan php://input secara merosakkan.
$options Parameter
Parameter $options to request_parse_body() membolehkan anda mengubah tingkah lakunya pada masa jalan, bukannya bergantung pada konfigurasi php.ini berkod keras.
- Nyatakan post_max_size untuk saiz kandungan maksimum yang akan cuba dihuraikan.
- Nyatakan max_input_vars untuk mengehadkan bilangan pembolehubah bentuk yang akan cuba dihuraikan. parse.
- Nyatakan upload_max_filesize untuk mengehadkan saiz individu fail yang akan dikendalikannya.
- Nyatakan max_file_uploads untuk mengehadkan bilangan muat naik fail yang akan dikendalikannya.
- Nyatakan max_multipart_body_parts untuk mengehadkan gabungan muat naik fail dan pembolehubah data borang yang akan dihuraikan.
Atas ialah kandungan terperinci Perubahan Kata Kerja HTTP dalam PHP 8.4. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











PHP dan Python masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1.Php sesuai untuk pembangunan web, dengan sintaks mudah dan kecekapan pelaksanaan yang tinggi. 2. Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan perpustakaan yang kaya.

PHP adalah bahasa skrip yang digunakan secara meluas di sisi pelayan, terutamanya sesuai untuk pembangunan web. 1.PHP boleh membenamkan HTML, memproses permintaan dan respons HTTP, dan menyokong pelbagai pangkalan data. 2.PHP digunakan untuk menjana kandungan web dinamik, data borang proses, pangkalan data akses, dan lain -lain, dengan sokongan komuniti yang kuat dan sumber sumber terbuka. 3. PHP adalah bahasa yang ditafsirkan, dan proses pelaksanaan termasuk analisis leksikal, analisis tatabahasa, penyusunan dan pelaksanaan. 4.Php boleh digabungkan dengan MySQL untuk aplikasi lanjutan seperti sistem pendaftaran pengguna. 5. Apabila debugging php, anda boleh menggunakan fungsi seperti error_reporting () dan var_dump (). 6. Mengoptimumkan kod PHP untuk menggunakan mekanisme caching, mengoptimumkan pertanyaan pangkalan data dan menggunakan fungsi terbina dalam. 7

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

PHP digunakan secara meluas dalam e-dagang, sistem pengurusan kandungan dan pembangunan API. 1) e-dagang: Digunakan untuk fungsi keranjang belanja dan pemprosesan pembayaran. 2) Sistem Pengurusan Kandungan: Digunakan untuk penjanaan kandungan dinamik dan pengurusan pengguna. 3) Pembangunan API: Digunakan untuk Pembangunan API RESTful dan Keselamatan API. Melalui pengoptimuman prestasi dan amalan terbaik, kecekapan dan pemeliharaan aplikasi PHP bertambah baik.

PHP masih dinamik dan masih menduduki kedudukan penting dalam bidang pengaturcaraan moden. 1) kesederhanaan PHP dan sokongan komuniti yang kuat menjadikannya digunakan secara meluas dalam pembangunan web; 2) fleksibiliti dan kestabilannya menjadikannya cemerlang dalam mengendalikan borang web, operasi pangkalan data dan pemprosesan fail; 3) PHP sentiasa berkembang dan mengoptimumkan, sesuai untuk pemula dan pemaju yang berpengalaman.

PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

PHP sesuai untuk pembangunan web, terutamanya dalam pembangunan pesat dan memproses kandungan dinamik, tetapi tidak baik pada sains data dan aplikasi peringkat perusahaan. Berbanding dengan Python, PHP mempunyai lebih banyak kelebihan dalam pembangunan web, tetapi tidak sebaik python dalam bidang sains data; Berbanding dengan Java, PHP melakukan lebih buruk dalam aplikasi peringkat perusahaan, tetapi lebih fleksibel dalam pembangunan web; Berbanding dengan JavaScript, PHP lebih ringkas dalam pembangunan back-end, tetapi tidak sebaik JavaScript dalam pembangunan front-end.

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.
