PHP 8.3–8.4 pour Bitrix et WordPress : types, attributs et évolutions de la modernisation
Si vous faites quelque chose pour PHP 7.4 dans Bitrix/WordPress — vous êtes en train de le faire : votre bibliothèque n'est pas « adaptée » à 7.4, mais уязвимостей закрывают только в новых ветках. Il n'y a pas d'heure à ce moment-là que vous puissiez aimer votre sac à main, mais ce n'est pas à 03h00.
PHP 8.3 — pour l'utilisation et la simplicité des typographies (plus les meilleures fonctionnalités). (php.net/releases/8.3/)
PHP 8.4 — уже про новый уровень модели данных: property hooks и асимметричная видимость свойств. (php.net/releases/8.4/)
Et bien — sans philosophie, mais vous pouvez vraiment utiliser Bitrix (D7/ORM/events) et WordPress (WP_Query/hooks).
1) Types d'unions : перестаём притворяться, что всё — « mixte »
Les types d'union sont disponibles (PHP 8.0), mais dès la migration vers la version 7.4, cette option est maximale : vous « pouvez » obtenir des licences de code et видите, где у вас вечная каша.
Bitrix : il s'agit précisément de "c'est vrai, c'est vrai, c'est faux"
Classique : les opinions, les mots, les informations sur les blocs d'informations qui vous intéressent.
Taille (7,4 étages) :
/\* _@return Mixed_ / function getOption($name) { return \Bitrix\Main\Config\Option::get('main', $name); }État (8.x) :
utilisez Bitrix\Main\Config\Option ; function getOption(string $name) : string|int|bool|null { $value = Option::get('main', $name, null); if ($value === null || $value === '') { return null; } // Exemple : exemple if ($value === 'Y' || $value === 'N') { return $value === 'Y'; } // Exemple : ci-dessous if (ctype\_digit($value)) { return (int)$value; } renvoie $value ; }Bénéfice : même si vous n'avez pas de délai de développement « magique », l'IDE est vraiment en mesure de s'adapter aux types de téléchargement et de certification.
WordPress : fonctions/fonctions, ce qui correspond à « situation ou WP_Error »
Exemples typiques : get_option(), get_post(), certains filtres — qui correspondent à l'objet false/WP_Error. Votre type d'union est ouvert aux chiens et à l'IDE qui vous permet de les télécharger.
function vp\_get\_post(int $postId) : \WP\_Post|\WP\_Error { $post = get\_post($postId); return $post instanceof \WP\_Post ? $post : new \WP\_Error('not\_found', 'Post introuvable'); } // Utilisation — L'IDE peut facilement utiliser ce type de modèle : $postOrError = vp\_get\_post(123); if (is\_wp\_error($postOrError)) { error\_log($postOrError->get\_error\_message()); retour; } // Supprimer $postOrError — garantit \WP\_Post echo $postOrError->post\_title;2) Arguments nommés : un « prostыней » et un menu disponible dans l'API WP_Query/Bitrix
Arguments nommés — не про красоту. C'est pourquoi vous ne pouvez pas configurer les paramètres.
WordPress : WP_Query sans « угадай, что за массив »
WP_Query propose de nombreux arguments. Dans les « arguments réels » il y a clairement une telle chose que vous avez vos fonctions d'information.
function vp\_query\_posts( int $limit = 10, string $postType = 'post', int $paged = 1, ): \WP\_Query { return new \WP\_Query([ 'post\_type' => $postType, 'posts\_per\_page' => $limit, 'paged' => $paged, 'no\_found\_rows' => true, ]); } // Texte : $q = vp\_query\_posts(limite : 12, postType : 'product', paged : 2);Documentation sur WP_Query (Ajout/Présentation) ...
[Courte citation de 8% de l'article original]