10 tips en PHP đ
(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âŠ