Accélerez facilement vos tests fonctionnels Symfony

Ce titre est un peu trompeur car il s’agit en fait d’accélérer le chargement de certaines fixtures, mais c’est bien au niveau de la vitesse d’exécution des tests que les gains se sentiront le plus.

Introduction

Les tests fonctionnels et leurs fixtures sont relativement simples et rapides à écrire avec l’écosystème Symfony : Doctrine Data Fixtures, LiipFunctionalTestBundle, Alice, Faker

Problème

Si vous avez choisi de hasher le mot de passe de vos utilisateurs avec Bcrypt (qui l’encodeur recommandé par Symfony) il est possible que l’exécution de votre suite de tests soit anormalement lente. Bcrypt est lent par nature et par design, cela permet notamment de limiter les attaques de type brute-force.

Domain Driven Design : partie 2

Dans la première partie on a vu à quoi servait le DDD, le nommage des classes, découper son projet en Bounded Context et comment les Aggregates peuvent séparer les responsabilités.

Comment faire pour éviter que notre projet ne se transforme en une usine à gaz ?

Si on avait une règle à retenir ça serait celle-ci :

Un cas d’utilisation = une transaction = un aggregate

Automatisation de relance email, ne développez pas !

Dans le cadre de plusieurs projets, hors du pur développement technique, nos clients nous demandent de mettre en place la couche « Technique / Marketing ».
Voici quelques exemples :

  • Relancer une action non terminée
  • Solliciter un utilisateur qui n’a pas complètement rempli son profil à J+5
  • Envoyer une relance pour l’expiration de sa carte bleue tous les mois tant que cette CB n’est pas à jour

Formulaires Symfony pour modifier vos requêtes DQL

Le titre est un peu étrange mais dans la réalité ça fonctionne !

Les formulaires Symfony sont vraiment très simple à utiliser, sûrement le composant le plus enfantin qui soit !

Petite démonstration avec le LexikFormFilterBundle qui permets d’ajouter des conditions en DQL dans vos requêtes.
Prenons le cas d’un date range. On aimerait avoir un sélecteur qui nous affiche soit un champ date qui filtrerait les résultats avec une date >= ou alors le sélecteur nous propose de choisir entre une date de début et une date de fin.

LexikFrameworkAcceleratorBundle

Dans le milieu du web tout le monde a déjà été confronté à des clients qui veulent des pages toujours plus rapide, moins longue et surtout plus rapide. Lexik étant très attentif aux performances applicatives, nos équipes ont investi de longues années de R&D dans le but de mettre au point une technique d’optimisation.