? WA-Tech&DevNews N°21
3 février 2022Hello,
Dans cette News N°21 je fais rapide, beaucoup de liens sur des ressources hyper intéressantes, je vous laisse aller voir ce qui vous intéresse
Bonnes pratiques PHP (et autres) : se passer des else… et des if !
Derrière ce titre accrocheur et les premiers exemples assez évidents, se cache un article très intéressant sur comment revoir sa façon de coder. A-t-on vraiment besoin d’autant de structures de contrôle que ça ? Vous allez vite voir que non. Un article qu’à titre personnel je trouve génial !
https://tainix.fr/article-technique/Bonnes-pratiques-PHP-4-se-passer-des-else-et-des-if
PHP – Cas d’étude – Convertir (presque) n’importe quelle chaîne de caractères en DateTime
(Ou comment j’ai appris à ne plus m’en faire et à aimer preg_replace_callback_array)
C’est le retour du tuto de Timothée G. ! Un matin, alors que je bossais sur un générateur de données de tests basé sur des imports de fichiers CSV, je me suis retrouvé confronté à la problématique suivante : les utilisateurs importent des données avec un fichiers excel, et selon l’import, les champs dates ne sont pas renseignés de la même façon. Certains renseignent 10/05/1990, mais sur d’autres imports on leur laisse la possibilité d’écrire sans séparateur à l’américaine ; par exemple ‘19900510’.
Comment puis-je prendre en compte tous les différents formats de date possible ? Ma première pensée c’est d’utiliser des expressions régulières pour identifier le format de date saisie, et de générer un DateTime en fonction, le problème étant le nombre de formats que je pouvais accepter. Je n’allais pas faire 36 if, et le switch est difficilement utilisable avec des regex. Puis finalement c’est une fonction assez compliquée et peu connue de PHP 7 qui m’a apporté la réponse : preg_replace_callback_array.
Derrière ce nom compliqué se cache une fonction qui va prendre une chaîne de caractères (ou un tableau) et appliquer un callback différent en fonction des expressions régulières qui vont matcher. Ici, je peux prendre la date saisie en tant que string et l’analyser selon différentes expressions régulières, afin de récupérer le format de date utilisé :
Avec cette méthode, on couvre déjà un certain nombre de formats de dates saisies. Il en reste toujours certains qui vont être ignorés. Attention, ici on utilise des return dans chacun des callback, mais la fonction est censé faire un preg_replace, ce qui veut dire que si aucune expression régulière ne match, $date ne sera pas remplacé par quoi que ce soit, et $format vaudra la chaîne de caractère $date. Je rajoute donc une petite exception dans ce cas spécifique. Et sinon, comme j’ai désormais identifié le format, je peux créer mon DateTime à l’aide de la fonction statique createFromFormat, et voilà le travail !
Javascript
Monter en compétence sur Javascript & Typescripts, quelques tips :
GitHub Repos to become better JavaScript Developer (devdojo.com)
How not to learn TypeScript (fettblog.eu)
Vue sur un projet chez Web-atrio : Comment remplacer rapidement toutes les occurrences d’une valeur dans un texte ou dans un objet :
// Si item: string
const
newItem = item.split(« maChaine »).join(« nouvelleValeur »);
// Si item : { } | []
const
newItem = JSON.parse( JSON.stringify(item).split(« maChaine »).join(« nouvelleValeur »));
Sécurité
Quoi de mieux pour progresser en sécurité que commencer par apprendre des bases de hacking ?
How To Hack Any Website. [PART -3 Exploiting Trust] | by Niveet Palan | Dec, 2021 | System Weakness
On continue avec les JWT que vous connaissez tous !
Vous êtes un chasseur de certification ?
Voici une liste de certifications gratuites pour vous amuser. Attention ce ne sont pas forcément des certifications officielles.
Free Certification Courses for Developers ? (devdojo.com)
Logiciel Open Source
Pour faire de jolies diagrammes de séquences, diagrammes UML etc.
Gaphor: Open Source Graphical Modeling Tool – It’s FOSS (itsfoss.com)