<unblogdedev/>

Mon petit blog sans prétention autour du développement web

Derniers articles

PHP 7.4 : Les fonctions fléchées aussi !

@ygascard
Pour rester dans la suite de mon précédent article sur les fonctions fléchées en ES6, PHP va également enfin avoir le support des fonctions fléchées ! Le vote de cette fonctionnalité a eu lieu le 2 mai 2019 et à ce jour, PHP 7.4, disponibles dans sa version beta1, dispose de cela. La RC est prévue pour la rentrée le 5 septembre et la version finale GA fin novembre de cette année 2019. À quoi ressemblent elles et que sont les fonctions fléchées en PHP ? Comme je l'ai dit dans mon précédent article, elles permettent une syntaxe plus courte et vous forcent à écrire un code avec potentiellemen

 

JavaScript ES6 : Les fonctions fléchées

@ygascard
Les fonctions fléchées (arrow functions) sont à mon sens une des choses qui apportent le plus grand changement en ES6 et sont très utilisées actuellement. Elles arrivent d'ailleurs en PHP avec la version 7.4 ! Elles diffèrent très légèrement des fonctions régulières et voici comment. Les fonctions fléchées ont été introduites en JavaScript avec la version ES6/ECMAScript 2015 et ont changé pour toujours le look d'un code JS et la façon dont il fonctionne. Cela a été tellement bienvenu qu'il se fait désormais rare de voir un code utiliser le mot function dans du code moderne. Mais attention,

 

En ES5, nous déclarions des variables via var. Ces variables, ont une portée fonctionnelle, leur portée étant la plus proche des fonctions englobantes. Le comportement de var peut donc être parfois déroutant. Voici un exemple : var x = 5; function func(randomize) { if (randomize) { var x = Math.random(); // portée: fonction entière return x; } return x; // accède à la variable x de la ligne 4 } func(false); // undefined func(0); // undefined Le fait que la fonction func() retourne undefined peut-être surprenant. On peut mieux comprendre pourquoi

 

JavaScript ES6 dispose de nombreuses nouveautés fort utiles par rapport à Common JS (ES5). Ceci est le premier article d'une série sur ces nouveautés et avantages. Même si aujourd'hui la majorité du parc navigateurs est compatible, il reste conseillé de convertir notre code en ES5 en utilisant un transpiler pour qu'il soit compris par tous les navigateurs. Un transpiler est un type de compilateur qui prend le code source d'un langage de programmation et le convertit en un autre langage ou version. Le transpiler le plus utilisé pour ES6 est Babel, que l'on incorpore généralement dans notre p

 

Dans la continuité de mon précédent article sur le hashage des mots de passe, votre application (sous Symfony ou autre) utilise peut-être MD5 ou BCrypt. Cet article a pour but de vous expliquer comment convertir vos mots de passe encryptés de manière non sécurisée vers une méthode plus sécurisée (BCrypt ou Argon2 utilisé ici) sous Symfony (Flex). Pour résoudre le problème, nous allons faire une conversion à la volée lorsque l'utilisateur se connecte. Toutefois, si votre application est critique, il peut être préférable de passer par une étape intermédiaire consistant à immédiatement fair

 

Afin d'optimiser le chargement de nos pages, il est recommandé de charger en différé, voir à la demande certaines ressources comme les images. Pour faire cela, on utilise le lazy-loading. Jusqu'à présent, nous devions faire cela avec de JavaScript (avec par exemple LazySizes). Les prochaines versions de Chrome et Firefox vont intégrer cela nativement via un nouvel attribut sur les balises img et iframe : loading. Voici un example : &lt;img src="uneimage.jpg" loading="lazy" alt="..."&gt; &lt;iframe src="player.html" loading="lazy"&gt;&lt;/iframe&gt; Grâce à ces nouveaux attribu

 

Un rapide article pour ceux d'entre-vous qui sont sous Linux. phpMyAdmin est installé généralement via le gestionnaire de packets. Il est généralement recommandé de n'utiliser que les packets des distributions. Hors le packet officiel de phpMyAdmin n'est pas mis à jour très fréquemment. Au moment où j'écris ces lignes, il est en version 4.6.6 pour Ubuntu 18 et 4.5.4 pour Ubuntu 16 alors que la dernière version est 4.8.5 (vous pouvez voir ces versions ici. Le problème est que si vous passez sous PHP 7.3, ces vieilles versions génèrent des erreurs agaçantes. S'offrent à vous 2 possibilités. S

 

Je ne vais évidemment pas ici expliquer qu'un mot de passe ne doit pas être stocké en clair, ce n'est pas le propos. Mais en tant que développeurs, nous faisons face à un besoin de mise à jour constante et il m'arrive encore de travailler ou reprendre des projets où les mots de passe sont stockés en clair ! Une fois cette sombre histoire du développement web passé, il fut un temps où stocker l'empreinte d'une fonction de hashage d'un mot de passe avec MD5 ou SHA-1 fut très apprécié reconnaissons-le. C'était simple, efficace et cela permettait d'empêcher à un attaquant de connaître le mot

 

Je suis un vieux de la vielle et pour moi, la validation de formulaire côté front est toujours passée par JavaScript. En cours, c'est ce que l'on voit et c'est normal. On doit toujours faire une validation côté serveur mais c'est bien moins agréable pour l'utilisateur en matière d'UX. On va donc chercher à faire cela côté front et donc cela passe par JS. Mais voilà, dans la plupart des cas, nous n'avons pas de formulaire complexe. On a juste besoin de valider les saisies. Celui-ci ne fait d'ailleurs pas spécialement d'erreur en utilisation courante et cela ne pause pas de problème. Bien évi

 

Lancement du Blog

@ygascard
Bon et bien c'est un grand classique mais voilà, Un Blog de Dev est lancé ! Je ne vais pas m'étendre puisque tout est expliqué dans la page à propos mais je tenais à souhaiter la bienvenue à tous mes anciens élèves qui viendraient visiter ce site ainsi qu'aux visiteurs qui tomberaient par hasard sur celui-ci. Gardez-le précieusement de côté. J'espère le tenir du mieux que je peux et vous proposer des articles intéressants et peu commun le plus fréquemment possible. L'idée est d'essayer de vous tenir au courant de l'actualité, de mettre à jour les choses que j'ai pu vous transmettre et co