Etienne Broutin, architecte logiciel chez Meetic, nous a fait un retour d’expérience après deux ans de refonte en micro-services. En 2013, toute l’application était dans le même dépôt de code. C’était un monolithe inmaintenable, intestable, avec beaucoup de doublons. De
Les tests unitaires (seconde partie)
J’ai déjà fait un article sur les tests unitaires, mais il s’agissait davantage d’une introduction. A présent, j’aimerais entrer dans le vif du sujet en proposant des cas concrets de tests unitaires avec PHPUnit. Ils seront liés à Symfony2/3 (entités,
Créer son propre paramConverter
En voilà une idée qui est bonne! Très honnêtement, cela m’est déjà arrivé, mais plutôt pour récupérer une liste et « vider » le contrôleur. Mais il arrive aussi que cela soit très utile si l’on veut que le comportement par défaut
Créer une annotation de contrôleur
Il arrive que l’on doive modifier des données à la volée (clef et ou valeur), mais rien ne correspond: un dataTransformer va bien me transformer la donnée, mais la clef transmise va rester la même. Dans un contrôleur, c’est vraiment
Utilisation du CompilerPass
Le compilerPass est extrêmement utile pour faire appel aux variables de l’environnement courant, bien entendu, mais aussi pour les services tagués. En effet, Symfony nous permet, lorsque le compilerPass s’exécute (après ceux de tous les autres bundles), d’appeler un service
qualité de code avec php-cs-fixer et php mess detector (+ docker !)
php-cs-fixer est un outil développé par sensio labs, qui relève les erreurs liées notamment au psr2. php mess detector est un outil permettant de vérifier que des variables inutilisées ne trainent pas, le code mort, dupliqué etc. J’ai récemment dû
Utilisation de gatling
Je ne présente pas gatling. Je pense que tout le monde a dû entendre parler de près ou de loin de cet outil permettant de tester la montée en charge d’une application web en implémentant des scénarii, le nombre d’utilisateurs
Les dataTransformers
Il existe deux types de dataTransformers : les modelTransformers et les viewTransformers. Les premiers permettent de transformer la donnée modèle en donnée normalisée alors utilisable par la vue, et les seconds permettent de transformer la donnée normalisée en donnée vue. Les
Le design pattern strategy pour gérer les CRUD
Plus le temps passe, et plus je me rends compte que découper son code en plusieurs classes permet de le maintenir plus facilement. Aussi, dans cette optique, j’ai décidé de gérer dorénavant mes CRUD avec le design pattern Strategy en
Les accès concurrents et autres types de verrous
Les verrous, kesako? Les verrous… lorsque j’ai été la première fois confronté aux verrous, il a fallu que je comprenne exactement de quoi il s’agissait. Et la seule notion que l’on m’a présentée, c’étaient les sémaphores, en cours sur linux.