Tests fonctionnels Symfony : exposer les exceptions de pages Symfony dans le rapport de test PHPUnit

Peut-être avez-vous déjà vécu cette situation où un ou plusieurs de vos tests fonctionnels échouent et le rapport d’erreur de PHPUnit n’est pas assez précis pour que vous sachiez ce qui se passe d’un seul coup d’oeil. Vous devez alors aller voir ce que fait votre test, reproduire le scénario depuis un navigateur pour enfin arriver au détail de l’exception, ou alors fouiller dans vos fichiers de logs. Cela peut vite devenir une perte de temps quand les erreurs se répètent.

Dans cet article, nous verrons comment, progressivement, nous pouvons arriver à une solution qui passe tout simplement par la capture du contenu de la page d’exception au sein de votre test et l’affichage de son contenu dans la sortie de PHPUnit.

La certification Zend PHP

Pourquoi passer la certification ?

Un des premiers avantages à être certifié(e) ZCPE (Zend Certified PHP Engineer) est d’améliorer sa visibilité et son attractivité sur le marché des développeurs PHP. Ecrire sur son CV « certifié(e) PHP » est toujours valorisant aux yeux des recruteurs, cela donne une reconnaissance supplémentaire à l’employeur en plus des divers diplômes scolaires et formations. Suite à l’obtention de la certification, Zend vous offre le droit d’utiliser son logo dans vos communications personnelles, ce qui vous permettra de présenter votre certification dans votre CV.

De plus en plus, les employeurs deviennent sensibles à cette reconnaissance, et parfois même ne veulent embaucher que ceux qui ont obtenu la précieuse certification.

zendLogo

Microframework de symfony 2

symfony_logo

Cela a peut-être échappé à certaines personnes, la version 2.8 offre la possibilité d’utiliser Symfony 2 en tant que microframework.

La version standard contient tout un lot de bundles déjà enregistrés dans le fichier AppKernel,  ainsi que toute une configuration à faire.

Si je vous disais qu’une application peut être fonctionnelle avec un seul fichier, seuls les bundles utiles seront installés et nous plus installés à l’avance.

Ajouter un nouveau type de produit dans Magento 2

magento2

Magento dispose de nombreux types de produit qui permettent de générer des catalogues complets et adaptés aux besoins des vendeurs. Il en est de même pour la version 2 de la solution E-Commerce.

Si chaque type définit un comportement et des attributs qui lui sont propres, il est parfois nécessaire de créer un nouveau type afin de répondre à de nouveaux besoins.

Cet article décrit comment déclarer un nouveau type de produit et comment lui associer un comportement qui lui est propre. Le code est basé sur la version 2.1.2 de Magento.

Le Full Page Cache (FPC) de Magento 2

 magento2

Le Full Page Cache (FPC) est un élément important à prendre en compte lors du développement d'un site quel qu'il soit afin d'en améliorer nettement les performances. L'arrivée de Magento 2 apporte une gestion native du FPC dans la version Community Edition (CE) lorsque Magento 1 ne le proposait que dans la version Enterprise Edition (EE). Il est possible d'utiliser le Full Page Cache avec un des mécanismes suivants :

  • le système de fichier,
  • la base de données,
  • Redis,
  • Varnish.

Architecture d’un projet avec symfony 3

symfony bundle

Développer avec Symfony 3 demande de respecter une certaine architecture bien différente de Symfony 2 afin que notre application respecte le principe  de maintenabilité et réutilisabilité.

De ce fait aujourd’hui tout s’articule autour d’un bundle unique  « src\AppBundle » qui représente le bundle principal de notre application  car  un bundle doit être capable de fonctionner tout seul mais cela n’étant pas le cas toujours.  Finis donc la logique en Symfony 2 qui voulait qu’on divise notre architecture en différents bundles.

Néanmoins nous pouvons créer de nouveau  bundles personnels dans notre application  soit :

  • Bundle qui sera interne à notre application
  • Bundle qui pourra être utilisé dans toutes nos applications et distribuable.

Dans cet article nous allons aborder le rôle des principaux dossiers dans l’architecture  d’un projet Symfony 3 standard, libre à vous selon votre expérience et celle de vos équipes de structurer personnellement certaines parties.