Sélectionner une page


PHP Le langage de script Web dans lequel WordPress est principalement créé. WordPress nécessite PHP 5.6.20 ou supérieur 7.4 est dans la phase finale de son cycle de publication. À la date de publication de cet article, version 7.4 RC3 a été publiéLa version finale de PHP 7.4.0 est prévue pour le 28 novembre 2019.

Étant donné que les changements attendus dans PHP 7.4 ont été publiés plus tôt cette année, les contributeurs de WordPress Veine Le noyau est le logiciel nécessaire pour exécuter WordPress. L’équipe de développement principale crée WordPress. a travaillé pour identifier les problèmes de compatibilité au sein de la base de code. Dans l’ensemble, les modifications nécessaires pour déclarer le support complet de PHP 7.4 étaient mineures et ont toutes été apportées.

WordPress vise à prendre entièrement en charge PHP 7.4 version 5.3 (actuellement prévu pour le 12 novembre 2019).

Voici un aperçu des modifications de PHP 7.4 qui sont Brancher Un plugin est un logiciel qui contient un groupe de fonctionnalités qui peuvent être ajoutées à un site Web WordPress. Vous pouvez étendre les fonctionnalités ou ajouter de nouvelles fonctionnalités à vos sites Web WordPress. Les plugins WordPress sont écrits dans le langage de programmation PHP et peuvent être intégrés de manière transparente à WordPress. Ceux-ci peuvent être gratuits dans le répertoire des plugins WordPress.org https://wordpress.org/plugins/ ou en tant que plugin tiers basé sur les coûts et les développeurs de thèmes doivent connaître et prendre en compte leur code.

Modifications de la syntaxe des accolades

Dans le passé, PHP permettait l’utilisation d’accolades ({}) pour accéder aux éléments du tableau et aux décalages de chaîne.

<?php
$array = [1, 2];
echo $array[1]; // prints 2
echo $array{1}; // also prints 2
 
$string = "foo";
echo $string[0]; // prints "f"
echo $string{0}; // also prints "f"

L’utilisation de la syntaxe entre accolades déclenche désormais une notification obsolète dans PHP 7.4 avec un plan pour supprimer complètement la fonctionnalité dans PHP 8.0 (ou toute autre version future).

Pour plus d’informations sur ce changement, consultez le proposition acceptée dans le Wiki PHP RFC officielou découvrez ce qui a changé dans WordPress Core pour résoudre ces problèmes # 47751.

Exigences spécifiques pour l’ordre des paramètres pour implode ()

le implode() La fonction accepte deux paramètres, $glue et $pieces. Pour des raisons historiques implode() a accepté ces paramètres dans n’importe quel ordre, bien que ce soit une recommandation que l’ordre documenté de implode( $glue, $pieces ) être utilisé.

À partir de PHP 7.4, la tolérance de passage des paramètres dans l’ordre inverse est obsolète et sera complètement supprimée dans PHP 8.0. vocation implode( $pieces, $glue ) une notification obsolète est déclenchée en PHP 7.4.

Noter: Cela vaut également pour le join() Fonction qui est un alias de implode() et accepte les deux mêmes paramètres.

Pour plus d’informations sur ce changement, consultez le proposition acceptée dans le Wiki PHP RFC officielou découvrez ce qui a changé dans WordPress Core pour résoudre ces problèmes # 47746.

Accès au décalage du tableau pour les non-tableaux / objets

PHP n’émettait auparavant un avertissement que si une tentative était faite d’utiliser un décalage à partir d’un invalide Une solution sur le bug tracker (et aussi courante dans le développement logiciel en général, parfois aussi pas dérangé) indiquant que le ticket n’est pas une erreur, est une demande d’assistance ou n’est généralement pas valide. Cependant, à partir de PHP 7.4, un avertissement est également émis si un conteneur est d’un type invalide.

Alors que le code qui repose sur le comportement non documenté du retour PHP null en essayant d’accéder au tableau a null/.bool/.int/.float/.resource continuera à fonctionner comme prévu, chaque instance de ceci lancera désormais un PHP E_WARNING.

Ce problème se produit le plus souvent lors de l’utilisation de l’accès tableau au résultat de fonctions avec des valeurs de retour mixtes; H. array|false. Lorsque les valeurs de retour de cette fonction sont utilisées, une vérification de type supplémentaire doit être effectuée avant de tenter d’accéder à la valeur de retour comme s’il s’agissait d’un tableau pour éviter cet avertissement.

Pour plus d’informations sur ce changement, consultez le proposition acceptée dans le Wiki PHP RFC officiel, ou découvrez ce qui a changé dans WordPress Core pour résoudre ces problèmes # 47704.

Noter: Étant donné que ce problème ne peut pas être détecté facilement / de manière fiable avec les outils d’analyse statique, il est possible que ce problème se produise plus fréquemment dans Core. Veuillez en ouvrir un nouveau ticket sur Trac et étiqueter Un répertoire dans Subversion. WordPress utilise des balises pour enregistrer un seul instantané d’une version (3.6, 3.6.1, etc.). C’est la convention commune des balises dans les systèmes de contrôle de version. (À ne pas confondre avec les balises de publication.) avec ça php74 Mot-clé lorsque des problèmes supplémentaires de ce type sont découverts.

Concaténation et priorité des opérateurs plus / moins

Dans les versions précédentes de PHP, le Priorité de l’opérateur de ., +, et - L’opérateur était exactement le même. Pour cette raison, les opérations sont évaluées de gauche à droite. Étant donné que les chaînes concaténées ne sont généralement pas des nombres, cela conduit souvent à un comportement indésirable. Il est rare que le comportement prévu consiste à ajouter ou à soustraire des chaînes concaténées.

// Example:
echo "sum: " . $a + $b;
 
// Current behavior: evaluated left-to-right
echo ("sum: " . $a) + $b;
 
// Desired behavior: addition and subtraction have a higher precedence
echo "sum :" . ($a + $b);

En PHP 8.0, le . L’opérateur a une priorité inférieure à + et -. Cela garantit que les ajouts et les soustractions sont toujours effectués Devant Une concaténation se produit.

À titre d’exemple, l’expression '3' . '5' + 7 sera désormais « 312 » au lieu de « 42 » auparavant.

Depuis PHP 7.4, un avis d’expiration est déclenché pour toutes les expressions qui ne sont pas entre crochets et qui contiennent un . avant un + ou alors -. Bien qu’il s’agisse d’un changement subtil, chaque occurrence de ce modèle entraîne un changement de comportement dans PHP 8.

Pour plus d’informations sur ce changement, consultez le proposition acceptée dans le Wiki PHP RFC officiel, ou vérifiez ce qui a changé dans WordPress Core pour résoudre ce problème # 47441.

Obsolète: Fonctionnalités liées à Magic Quotes

le magic_quotes La configuration a été supprimée de PHP dans la version 5.4. Les implémentations de fonction qui vérifient que ces paramètres ont été activés ont été renvoyées false depuis. PHP 7.0 a été supprimé ultérieurement magic_quotes Complètement.

À partir de PHP 7.4, get_magic_quotes_gpc() et get_magic_quotes_runtime() sont maintenant marqués comme obsolètes et devraient être supprimés dans PHP 8.

Pour plus d’informations sur ce changement, consultez le proposition acceptée dans le Wiki PHP RFC officiel, ou vérifiez ce qui a changé dans WordPress Core pour résoudre ce problème # 47783.

Opérateurs ternaires associatifs de gauche

Dans la plupart des autres langues, c’est opérateur ternaire est associatif à droite. Cependant, en PHP, il reste associatif. Ce comportement n’est généralement pas utile et peut être déroutant pour les programmeurs qui basculent entre différentes langues.

En PHP 7.4, les ternaires imbriqués sans crochets explicites émettent un avertissement d’expiration. Au lieu de cela, cela devient une erreur de compilation dans PHP 8.0.

<?php
1 ? 2 : 3 ? 4 : 5;   // deprecated
(1 ? 2 : 3) ? 4 : 5; // ok
1 ? 2 : (3 ? 4 : 5); // ok

Il n’y a eu aucune occurrence de ce modèle dans WordPress Core, mais il est important que vous examiniez vos plugins, vos thèmes et votre code personnalisé pour vous assurer de la compatibilité avec PHP 7.4. Pour plus d’informations sur ce changement, consultez le proposition acceptée dans le Wiki PHP RFC officiel.

Outil de compatibilité

Pour identifier les éventuels problèmes de compatibilité avec les versions PHP prises en charge, vous pouvez utiliser le Vérificateur de compatibilité PHPC a été ajouté à WordPress Core avec un ensemble de règles personnalisées qui étend cette Ensemble de règles PHPCompatibilityWP.

Si vous créez ou gérez des plugins ou des thèmes, il est fortement recommandé d’ajouter le vérificateur de compatibilité PHPC à votre boîte à outils pour rendre la détection des problèmes de compatibilité avec les versions PHP plus facile et plus cohérente. Outre le problème de décalage de tableau, tous les autres problèmes mentionnés dans cet article peuvent être automatiquement détectés à l’aide de PHPCompatibility.

Si vous travaillez sur WordPress Core, composer compat peut être exécuté pour analyser la base de code de base pour d’éventuels problèmes de compatibilité. De plus, chaque build de TravisCI inclut désormais un travail de vérification de compatibilité PHP qui recherche les problèmes de compatibilité potentiels. Ce travail peut actuellement échouer pendant que les résultats sont analysés et que l’ensemble de règles est affiné pour éliminer les faux positifs.

Pour plus d’informations, consultez # 46152 au Trac Un projet open source d’Edgewall Software qui sert de traqueur de bogues et d’outil de gestion de projet pour WordPress..

Bibliothèques externes et dépendances

WordPress Responsable principal Les principaux responsables sont ceux qui ont travaillé sur une version de WordPress en créant les fonctionnalités ou en trouvant et en corrigeant les bogues. Ces contributions se font par l’intermédiaire de Trac. https://core.trac.wordpress.org. a travaillé avec les responsables de plusieurs bibliothèques externes et dépendances pour assurer la compatibilité avec PHP 7.4.

getID3

le bibliothèque getID3 a été mis à jour par v1.9.14 à v1.9.18. Cette mise à jour supprime certaines occurrences de la syntaxe désormais obsolète pour les accolades et certains codes liés aux guillemets magiques. Voir ceux-ci pour plus de détails Tirer des demandes, # 47783, ou alors [46112].

PHPMailer

le Bibliothèque PHPMailer a été mis à jour par v5.2.22 à v5.2.27 dans le noyau et corrigé pour empêcher le déclenchement de notifications liées aux citations magiques obsolètes. Magic Quotes a été complètement supprimé de PHPMailer 6.0 et supérieur. # 41750 existe pour mettre PHPMailer à jour et au mieux au début du cycle de publication de la version 5.4. Pour plus d’informations, consultez # 40472 et # 47783ou les ensembles de modifications pertinents ([46097] et [46378]).

Demandes

le Bibliothèque de demandes a été mis à jour pour traiter l’apparence de la syntaxe désormais obsolète pour les accolades et l’accès aux décalages de tableau sur les non-tableaux. Pour plus d’informations sur ces mises à jour, consultez PR-346 et PR-370 dans le référentiel d’exigences, # 47746ou les enregistrements de modification associés ([46258] et [46416]).

SimplePie

le Bibliothèque SimplePie a été corrigé dans Core pour empêcher les notifications obsolètes liées à la transmission de paramètres à implode() déclenché dans le mauvais ordre. Ce problème a été résolu dans le dernier Sortie de la version 1.5.3. La mise à niveau de l’ensemble de la bibliothèque vers la dernière et la meilleure version avec une couverture de test accrue est actuellement à l’étude et attendue au début du cycle de publication de la version 5.4 (voir # 36669). Pour plus d’informations, consultez # 47746 ou alors [46260].

Autres mises à jour

Plusieurs autres bibliothèques qui n’ont plus de source canonique gérée en externe ont également été mises à jour.

Résumé

Comme toujours, lisez le document de mise à niveau complet est fortement recommandé.

Même si WordPress Core continue d’étendre sa prise en charge des nouvelles versions de PHP, cela offre Le support actuel des anciennes versions reste inchangé dans PHP 5.6.20 et supérieur jusqu’à ce que les chiffres d’utilisation montrent que l’impact sur les utilisateurs est minime.

Il existe une initiative distincte visant à réduire les chiffres d’utilisation des anciennes versions de PHP, que l’équipe de base de PHP à travers le servehappy initiative. Si vous souhaitez contribuer à cette entreprise, veuillez rejoindre le # core-php Chambre dans le Créer l’instance WordPress Core Slack.

WordPress continue d’encourager tous les utilisateurs à exécuter les dernières et meilleures versions de PHP. Cela inclut PHP 7.4 lors de sa sortie officielle.

Une liste complète des billets liés à Le support de PHP 7.4 peut être trouvé sur Trac.

accessoires @jrf et @Jorbin pour l’évaluation par les pairs.

#5-3, #notes de développement, #PHP-7-4



Source link

Recent Posts