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.

Recrutement développeurs PHP chez Lexik Montpellier

Description du poste :

Vous êtes motivé et passionné par votre métier, vous suivez avec attention l’évolution des frameworks et des derniers langages à la mode. Vous avez déjà travaillé en équipe et vous aimez ça.

Vous bénéficiez d’une bonne expérience à titre privé ou professionnel dans les technologies suivantes :

  • PHP , OOP ;
  • HTML / CSS ;
  • SQL (MySQL, SQLite, PostgreSQL, …).

Une expérience ou un intérêt dans les domaines suivants seront un atout :

  • Framework Symfony ;
  • Gestionnaire de version (Git ) ;
  • Javascript, Angularjs, ReactJS, node.js ;
  • Tests unitaires et fonctionnels, intégration continue ;
  • Méthodologie de développement agile (Scrum).

Domain Driven Design : Partie 1

Domain Driven Design c’est essentiellement une question de nommage. On nomme énormément de choses dans notre code, mais de quelle manière ? et pourquoi ?

Pour ceux qui aiment la programmation orientée objet, on modélise très vite notre model en un diagramme de classe. On donne un nom générique à chaque classe et c’est plié.

Pourtant quand on commence un nouveau projet, on nous donne un contexte, un domaine sur lequel nous reposer. Si on doit proposer un catalogue de vélo ou de voyages, on va utiliser des mots et des termes différents. Cependant, notre code lui va rester sensiblement le même.

Installation de SuPHP sur Ubuntu

Un problème récurrent pour beaucoup de développeurs utilisant Symfony est l’éternel conflit avec l’utilisateur « www-data » lors des accès, par exemple, aux fichiers du cache et aux logs. Sur Symfony 2 ce problème devient encore plus visible avec l’utilisation massive du répertoire cache même en environnement « dev ». Le cas de conflit le plus flagrant est certainement le app/console cache:clear qui renvoie une erreur car le cache a été généré par www-data lors du chargement du site par apache. Le bon gros sudo rm -rf app/cache/* n’est pas une solution acceptable, tout juste une rustine.

Envoi d’email avec Symfony et Mailjet

Petit constat :

La gestion des expéditions de mails dans les projets Web est souvent laborieuse. En effet, les serveurs ne sont pas toujours bien configurés pour ça. Il arrive que les emails partent en spam ou encore qu’ils soient bloqués avant même d’entrer dans la boite mails des utilisateurs… Bref, c’est jamais pratique et le suivi se fait très difficilement.

Présentation du lxErrorLoggerPlugin

Voici le petit dernier des plugins Symfony de chez Lexik, lxErrorLoggerPlugin, son but est simple : vous alerter en cas d’erreurs PHP ou Exceptions sur vos projets Symfony.
Le besoin est simple, être alerté et éventuellement logger chaque erreurs, qu’elles soient PHP, Exception ou erreurs remontées par Symfony. En effet le logger de base de Symfony s’arrête aux erreurs remontées par ses soins mais ne remontent pas forcément aux erreurs PHP. Le système de notification du plugin est très flexible grâce à une série de « notifier » que l’on peut activer ou non de façon indépendante les uns des autres.