10 tips en PHP 🐘

Smaine Milianni
3 min readJul 26, 2021

(Access to the English version here )

Dans cet article je te propose de voir 10 tips qui peuvent amĂ©liorer ton code PHP 🔍 🐘

Pour faciliter la lecture je vais Ă©crire des morceaux de code que j’ai rencontrĂ© et proposer 1 solution de remplacement avec des commentaires si besoin, comme tu le sais il y a 4242424242424 maniĂšres de faire la mĂȘme chose ✹ et tu as clairement le droit de pas ĂȘtre d’accord avec ce que je propose 😅

👀 Pour mes exemples j’utilise la version 7.4 de PHP

3,2,1
 c’est parti 🏁 đŸ”„

1 - Dans ce genre de cas tu peux retourner l’expression 👌

2 - Null coalescing operator for the win 😍

💡C’est trĂšs pratique pour Ă©viter les exceptions lorsque tu veux accĂ©der Ă  une clĂ© d’un tableau qui pourrait ne pas exister

3 - 🛑 Evite d’utiliser method_exist si possible et privilĂ©gie des interfaces

Dans cet exemple l’avantage de l’interface est que nous Ă©vitons les erreurs de typographie et nous avons les avantages de l’IDE (recherche, autocomplete
).

De plus le contrĂŽle "if method_exist($user, 'setUpdatedAt')“ est fortement liĂ© au nom de la mĂ©thode, en passant par une interface on peut renommer la mĂ©thode de maniĂšre safe et puisque c’est une interface la mĂ©thode setUpdatedAt peut trĂšs bien ĂȘtre mise dans un trait pour ĂȘtre rĂ©utilisĂ©e sans duplication de logique.

4 - Rendre le code expressif 🗣

Dans l’exemple on pourrait mĂȘme extraire le check de l’interface dans une methode isLoggable ça rĂ©duit la charge cognitive et permet de toute suite comprendre que l’objet manipulĂ© est possiblement logguĂ©.

5 - Droit au but đŸ„…

6 - Initialize ton helper, 1 fois mais pas 2 😛

7- Unpack an array đŸŽ© (dĂ©so j’ai pas de trad en FR) 😁

Dans le mĂȘme esprit on peut aussi assigner des variables Ă  partir d’un tableau, c’est pratique si une fonction retourne un tableau 🚀

8 - Evite d’utiliser empty ⚠

Cette fonction est trop “gĂ©nĂ©rique”, l’utiliser peut masquer de potentiel bug, je te link un petit article sur le sujet

9 - Utiliser les index de tableau comme discriminant 📚

Dans certains cas il est trĂšs pratique d’utiliser les index d’un tableau comme discriminant afin de retrouver la valeur souhaitĂ©e. Imaginons qu’on ait une fonction qui permette de dire “bonjour” dans diffĂ©rentes langues, le 1er reflexe serait de faire 1 switch case basique comme ceci:

Le principale inconvĂ©nient est qu’au fur et Ă  mesure que nous enrichirons les traductions, le switch case va grossir et surtout nous allons devoir modifier cette mĂ©thode, ce qui enfreint le “O” de SOLID 😬

Une bonne alternative est de “configurer” les traductions disponibles dans un array comme ceci:

Ainsi avec cette seconde approche les traductions supportées sont configurés dans 1 tableau, on peut aisément le faire évoluer sans toucher à notre fonction.

On peut aller plus loin et rendre plus robuste notre programme en Ă©vitant de la faire planter si nous avons une traduction que nous gĂ©rons pas en utilisant “les values object” (si ce terme ne te parle pas, je l’explique dans cette vidĂ©o)

Voici la version avec 1 Value Object :

Cette solution demande un peu plus de code mais c’est plus robuste đŸ’Șet plus clean đŸ§Œ , on peut rĂ©utiliser l’objet Locale et si on a une locale qui n’est pas gĂ©rĂ©e l’application plantera en amont donc plus rapidement que dans la mĂ©thode sayHello et c’est important de planter rapidement en cas d’erreur 💡

10 - isset unset var_dump peuvent accepter plusieurs arguments 😅

et unset($user, $product) ainsi que var_dump($data, 42, $user) sont des codes complĂštement valide.

Et voilĂ  pour ces 10 tips, il y en a d’autres et je ferais sĂ»rement d’autres articles dans ce sens, je t’invite Ă  me follow pour ne pas manquer les prochains 🗞

👋 Retrouve moi donc sur Twitter LinkedIn et Youtube 🍿

Merci de m’avoir lu, partage l’article et pense à 👏 au max


Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Smaine Milianni
Smaine Milianni

Written by Smaine Milianni

Fullstack Developer- certified Symfony 4,5 and certified AWS Solution Architect - Freelancer - Remote Worker

Responses (3)