Modifications des verbes HTTP dans PHP 8.4
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.
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
PHP prenez cela et remplissez le superglobal $_POST de telle sorte qu'il devienne ce qui suit :
<?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'], ];
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);
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(); }
(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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds











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 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 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 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.

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 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 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 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.
