Dev back

"
Dev back

PHP 8.6: `array_filter` function's `$mode` throws `ValueError` on invalid values

La version 8.6 de PHP introduit des modifications dans la fonction `array_filter`. Elle inclut un nouveau mode pour spécifier comment les valeurs doivent être passées à la fonction de rappel. Si une valeur non reconnue est fournie, une exception `ValueError` est lancée, améliorant ainsi la gestion des erreurs par rapport aux versions antérieures où de telles valeurs étaient ignorées silencieusement.

"
Dev back

PHP 8.6: New `SortDirection` Enum

La version PHP 8.6 introduit un nouvel Enum appelé `SortDirection`, accessible depuis l'espace de noms global. Cet Enum est un Unit Enum, ce qui signifie que ses éléments n'ont pas de valeur scalaire associée. Les applications PHP peuvent l'utiliser pour valider les directions de tri et en déduire des valeurs spécifiques au domaine. Si une application PHP utilise déjà des Enums, cette nouveauté n'impacte pas la compatibilité antérieure.

"
Dev back

PHP 8.6: New `grapheme_strrev` function

PHP 8.6 introduit la nouvelle fonction `grapheme_strrev`, qui permet d'inverser une chaîne de caractères en unités de graphemes, contrairement à `strrev` qui agit sur les octets. Cette nouvelle fonction est utile pour gérer correctement les caractères multibytes, tels que les emojis, en préservant leur structure. Elle est déclarée dans l'espace de noms global et ne devrait pas affecter la compatibilité ascendante des applications existantes, à moins qu'une fonction du même nom ne soit déjà déclarée. Un polyfill est également possible pour les versions antérieures de PHP.

Dev back

Bonus: Custom DQL Function

Cet article explique comment créer une fonction DQL personnalisée dans Doctrine pour gérer des opérations sur des entités avec héritage dans une base de données. Après avoir rencontré des problèmes avec les alias SQL et le prédicat de discriminant, l'auteur propose de créer une classe personnalisée qui s'intègre avec le système DQL, facilitant ainsi l'utilisation des colonnes discriminantes dans les requêtes. Le processus est décrit étape par étape, incluant l'écriture de la classe, l'enregistrement de la fonction et l'ajustement du code pour qu'il soit conforme aux standards de Doctrine.