Table des matières
Verbes HTTP en PHP : Contexte
Méthodes HTTP GET et POST
Autres méthodes HTTP
Modifications apportées aux verbes HTTP non POST
Verbes HTTP dans PHP 8.4 : un guide du développeur
Types de contenu pris en charge
php://input
$options Paramètre
Maison développement back-end tutoriel php Modifications des verbes HTTP dans PHP 8.4

Modifications des verbes HTTP dans PHP 8.4

Dec 24, 2024 pm 04:47 PM
php

PHP 8.4 est sorti en novembre, et vous et votre équipe n'en doutez pas J'ai travaillé dur pour comprendre les nouvelles fonctionnalités, les dépréciations et les changements qui accompagnent cette dernière itération du langage. Ce inclut des modifications apportées aux verbes HTTP non POST.

Dans ce blog, je marche à travers l'arrière-plan des verbes HTTP en PHP, expliquant pourquoi le HTTP les changements de verbes dans PHP 8.4 sont importants. Je fournis ensuite un guide aux développeurs à référencer lors de la mise en œuvre de ces modifications dans leur code.

截屏2024-12-24 16.43.04.png

Verbes HTTP en PHP : Contexte

PHP a été développé en pensant au Web et prend en charge la gestion des formulaires depuis sa version premiers jours. À l'origine, en HTTP, il n'y avait essentiellement que deux méthodes via lesquelles un navigateur pourrait demander une page Web : via GET ou POST.  Bien que les formulaires HTML ne prennent encore réellement en charge que ces deux méthodes, JavaScript a la capacité d'envoyer des requêtes HTTP en utilisant n'importe quelle méthode HTTP, et un certain nombre de boîtes à outils (par exemple HTMX) peuvent même gérer cela de manière transparente pour les développeurs.

Méthodes HTTP GET et POST

Une requête GET transmet les données du formulaire via la chaîne de requête de l'URL. Cela signifie que les résultats du formulaire peuvent être ajoutés à vos favoris, répétés et même mis en cache. Pour cette raison, les requêtes GET ne sont généralement utilisées que pour des actions qui demandent un état sans modifier l'état : recherches, résultat tri, filtrage des résultats, pagination, etc.

Si vous souhaitez effectuer une action qui pourrait apporter des modifications au sein d'une application - par exemple, traiter un panier, envoyer un message d'assistance, télécharger un image, etc. — vous utiliserez la méthode HTTP POST. Les requêtes POST sont considérés comme non idempotents, ce qui signifie qu'ils ne peuvent pas être mis en cache et ne doivent pas être répétés, car ils ont des effets secondaires. Ces effets peuvent signifier des insertions, des modifications ou des suppressions dans une base de données, des opérations sur le système de fichiers, des requêtes Web ou autre chose.

Dans Afin d'automatiser la gestion des données de formulaire, PHP propose plusieurs variables superglobales qu'il remplit à partir de la requête entrante. $_GET est renseigné avec des arguments de chaîne de requête URL et peut être renseigné à partir de n'importe quelle méthode de requête. $_POST, cependant, n'est renseigné qu'à partir du corps des requêtes POST effectuées à l'aide du type de contenu application/x-www-form-urlencoded, qui pourrait ressembler à ceci :

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
Copier après la connexion


PHP prenez cela et remplissez le superglobal $_POST de telle sorte qu'il devienne ce qui suit :

<?php
$_POST = [
    &#39;title&#39; => 'HTTP Verbs Changes in PHP 8.4',
    'url' => 'https://example.org/blog/php-8.4-http-verbs',
    'author' => 'Just Some Guy',
    'tags' => ['php', 'http'],
];
Copier après la connexion


Le fait que PHP fasse cela en coulisses pour vous, cela fait partie de ce qui rend PHP si facile à apprendre et à démarrer.

De plus, il peut également gérer le type de contenu multipart/form-data, qui permet à un navigateur de télécharger des fichiers en plus de fournir un formulaire. données. Ce faisant, il remplira un $_FILES supplémentaire superglobal, qui fournit des informations sur les fichiers téléchargés ; les développeurs peuvent ensuite valider et prétraiter ces fichiers avant de les stocker dans un emplacement permanent.

Autres méthodes HTTP

Il existe beaucoup plus de méthodes HTTP que GET et POST, et de développeurs pour le web ils voudront souvent choisir différentes méthodes pour fournir un contexte à ce qui ils tentent de faire :

  • PUT est souvent utilisé pour indiquer que les données doivent remplacer les données existantes.
  • PATCH est souvent utilisé pour indiquer qu'une mise à jour partielle d'un enregistrement existant est en cours de création.
  • DELETE est utilisé pour indiquer que l'enregistrement ou le contenu soumis doit être supprimé ou marqué comme supprimés.

Bien que les navigateurs ne les prennent pas en charge nativement (encore !), de nombreux frameworks et bibliothèques JavaScript le font.

Mais il y a un hic : PHP ne gère pas automatiquement ces requêtes. Dans En fait, vous devez gérer vous-même leur analyse, ce qui peut être extrêmement problématique lorsque vous commencez également à gérer les téléchargements de fichiers comme ainsi que les données de formulaire. (Ne lancez jamais vos propres analyseurs !)

Modifications apportées aux verbes HTTP non POST

PHP 8.4 introduit la méthode request_parse_body() :

[$_POST, $_FILES] = request_parse_body(?array $options = null);
Copier après la connexion


Le La fonction analyse la requête entrante de la même manière qu'elle l'a toujours fait. pour les requêtes POST, mais vous permet de spécifier des variables alternatives à stocker les données du formulaire et les téléchargements de fichiers (ou écraser les superglobales, si vous préférez). Vous pouvez également modifier le comportement de l'analyseur via l'argument $options, avec plus d'informations à ce sujet ci-dessous.

Un modèle courant sera probablement :

<?php
if (in_array($_SERVER['REQUEST_METHOD'], ['PUT', 'PATCH', 'DELETE'], true)) {
    [$_POST, $_FILES] = request_parse_body();
}
Copier après la connexion


(Bien que si vous Si vous utilisez un framework, attendez-vous à ce que le framework s'occupe de ce détail pour vous.)

C'est littéralement l'intégralité de la fonctionnalité. Une fonction simple à fournir un comportement clé en main que vous connaissez déjà en tant que développeur PHP. Il Il n'y a pas beaucoup mieux que ça !

Verbes HTTP dans PHP 8.4 : un guide du développeur

Maintenant que nous avons parlé des modifications apportées aux verbes HTTP dans PHP 8.4, parlons jetez un œil à quelques exemples sur la façon dont vous pouvez les utiliser et les appliquer mises à jour dans votre code.

Types de contenu pris en charge

Tout comme les requêtes POST, request_parse_body() analysera uniquement les requêtes avec le contenu suivant types :

  • application/x-www-form-urlencoded
  • multipart/form-data

Dans le cas d'application/x-www- form-urlencoded, l'équivalent $_FILES Le tableau (index 1 dans le tableau renvoyé) sera vide. Si le contenu type n'est pas pris en charge, la fonction lancera une InvalidArgumentException.

php://input

PHP vous permet d'inspecter le contenu brut de la requête via le flux php://input. Il s'agit d'un flux mis en mémoire tampon qui peut être (à partir de PHP 7.4) lu plusieurs fois. Cependant, lors de la réception de données multipart/form contenu, PHP devient un peu destructeur, pour une très bonne raison : la mise en mémoire tampon les fichiers pourraient conduire à ce que le contenu du fichier soit écrit deux fois sur le disque, conduisant à plus de mémoire, de stockage et d'utilisation d'E/S.

En tant que tel, request_parse_body() NE DOIT PAS être appelé deux fois, car il consommerait de manière destructrice php://input.

$options Paramètre

Le paramètre $options de request_parse_body() vous permet de modifier son comportement au moment de l'exécution, au lieu de vous fier à des éléments codés en dur Configuration php.ini.

  • Spécifiez le post_max_size pour la taille maximale du contenu qu'il tentera d'analyser.
  • Spécifiez le max_input_vars pour limiter le nombre de variables de formulaire qu'il tentera d'analyser.
  • Spécifiez upload_max_filesize pour limiter la taille des fichiers individuels. handle.
  • Spécifiez max_file_uploads pour limiter le nombre de téléchargements de fichiers qu'il gérera.
  • Spécifiez max_multipart_body_parts pour limiter la combinaison de téléchargements de fichiers et de variables de données de formulaire qu'il analysera.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1670
14
Tutoriel PHP
1273
29
Tutoriel C#
1256
24
PHP: un langage clé pour le développement Web PHP: un langage clé pour le développement Web Apr 13, 2025 am 12:08 AM

PHP est un langage de script largement utilisé du côté du serveur, particulièrement adapté au développement Web. 1.Php peut intégrer HTML, traiter les demandes et réponses HTTP et prend en charge une variété de bases de données. 2.PHP est utilisé pour générer du contenu Web dynamique, des données de formulaire de traitement, des bases de données d'accès, etc., avec un support communautaire solide et des ressources open source. 3. PHP est une langue interprétée, et le processus d'exécution comprend l'analyse lexicale, l'analyse grammaticale, la compilation et l'exécution. 4.PHP peut être combiné avec MySQL pour les applications avancées telles que les systèmes d'enregistrement des utilisateurs. 5. Lors du débogage de PHP, vous pouvez utiliser des fonctions telles que error_reportting () et var_dump (). 6. Optimiser le code PHP pour utiliser les mécanismes de mise en cache, optimiser les requêtes de base de données et utiliser des fonctions intégrées. 7

PHP vs Python: comprendre les différences PHP vs Python: comprendre les différences Apr 11, 2025 am 12:15 AM

PHP et Python ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1.Php convient au développement Web, avec une syntaxe simple et une efficacité d'exécution élevée. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et des bibliothèques riches.

PHP et Python: comparaison de deux langages de programmation populaires PHP et Python: comparaison de deux langages de programmation populaires Apr 14, 2025 am 12:13 AM

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

PHP en action: Exemples et applications du monde réel PHP en action: Exemples et applications du monde réel Apr 14, 2025 am 12:19 AM

PHP est largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et le développement d'API. 1) E-commerce: Utilisé pour la fonction de panier et le traitement des paiements. 2) Système de gestion du contenu: utilisé pour la génération de contenu dynamique et la gestion des utilisateurs. 3) Développement des API: Utilisé pour le développement de l'API RESTful et la sécurité de l'API. Grâce à l'optimisation des performances et aux meilleures pratiques, l'efficacité et la maintenabilité des applications PHP sont améliorées.

La pertinence durable de PHP: est-elle toujours vivante? La pertinence durable de PHP: est-elle toujours vivante? Apr 14, 2025 am 12:12 AM

PHP est toujours dynamique et occupe toujours une position importante dans le domaine de la programmation moderne. 1) La simplicité de PHP et le soutien communautaire puissant le rendent largement utilisé dans le développement Web; 2) sa flexibilité et sa stabilité le rendent exceptionnelle dans la gestion des formulaires Web, des opérations de base de données et du traitement de fichiers; 3) PHP évolue et optimise constamment, adapté aux débutants et aux développeurs expérimentés.

PHP et Python: différents paradigmes expliqués PHP et Python: différents paradigmes expliqués Apr 18, 2025 am 12:26 AM

PHP est principalement la programmation procédurale, mais prend également en charge la programmation orientée objet (POO); Python prend en charge une variété de paradigmes, y compris la POO, la programmation fonctionnelle et procédurale. PHP convient au développement Web, et Python convient à une variété d'applications telles que l'analyse des données et l'apprentissage automatique.

PHP vs autres langues: une comparaison PHP vs autres langues: une comparaison Apr 13, 2025 am 12:19 AM

PHP convient au développement Web, en particulier dans le développement rapide et le traitement du contenu dynamique, mais n'est pas bon dans les applications de la science des données et de l'entreprise. Par rapport à Python, PHP présente plus d'avantages dans le développement Web, mais n'est pas aussi bon que Python dans le domaine de la science des données; Par rapport à Java, PHP fonctionne moins bien dans les applications au niveau de l'entreprise, mais est plus flexible dans le développement Web; Par rapport à JavaScript, PHP est plus concis dans le développement back-end, mais n'est pas aussi bon que JavaScript dans le développement frontal.

PHP et Python: exemples de code et comparaison PHP et Python: exemples de code et comparaison Apr 15, 2025 am 12:07 AM

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

See all articles