Qualité de code – Intégration de php-git-hooks dans Symfony2

Si vous utilisez GIT comme gestionnaire de version, vous connaissez peut-être déjà les hooks, qui permettent d’ajouter des comportements automatiques qui se déclencheront lorsque vous effectuerez des actions avec votre gestionnaire de sources préféré, comme par exemple lors d’un commit.

Nous allons voir aujourd’hui comment mettre en place la librairie php-git-hooks écrite par bruli, dans votre projet Symfony2 afin de valider la qualité du code de votre projet lors de chaque commit GIT et ainsi limiter votre dette technique.

Hierarchical facets avec Elasticsearch

Elasticsearch est devenu un outil incontournable pour l’indexation de documents et la recherche textuelle. Un des rares reproches qui pouvait lui être fait il y a quelques mois était son absence de support des facets hiérarchiques. Il s’agit en effet d’une fonctionnalité très utile et demandée dans les sites e-commerce.

Pour ceux qui ne seraient pas familiers avec le vocabulaire des moteurs de recherche, une « facet » (ou recherche à facette en français) permet de regrouper des données sur des résultats de recherche. Elles sont calculées en temps réel et on les retrouve très souvent sur les catégories d’un site e-commerce. Les facets permettent par exemple de retrouver toutes les catégories associées à des résultats de recherche, avec le nombre d’éléments correspondants.

Implémentation d’un client RESTful avec une Description Guzzle

De nos jours de nombreuses problématiques liées au développement d’un site marchand peuvent voir leur traitement simplifié et externalisé via des API; par exemple le paiement en ligne, la facturation, ou l’envoi d’emails. Dans le cadre de cet article, nous allons créer un service pour s’interfacer avec l’API de facturation de matpe.fr.

Gestion de Workflow dans un projet Symfony2 : Le workflowBundle

Parfois dans un projet on a besoin de garantir un certain enchaînement d’état dans un ordre précis, pour cela la définition d’un workflow s’impose.

Ce bundle a pour intérêt de gérer les transitions de vos objets (produit, document, information etc.) d’une étape à une autre.
En d’autre mots l’automatisation des processus au sein de votre projet et l’historisation des étapes.

Notifications via websocket avec Symfony2 et Node.js

La réactivité des applications web est un critère essentiel de l’expérience utilisateur. Fini le temps des requêtes AJAX exécutées toutes les X secondes, ou pire des rechargements de page pour actualiser le contenu ! Les notifications en direct se font aujourd’hui très simplement grâce aux websockets.

Les solutions serveur ne manquent pas, de l’incontournable socket.io (node.js) au plus récent ratchet (php). Et coté client, HTML5 fournit une API WebSocket… encore peu répandue malheureusement !

La stack retenue

Pour cet exemple, nous allons utiliser la version node.js de Faye server, qui a l’avantage d’être très simple à mettre en place et de d’intégrer directement un client JavaScript.

Stack Symfony2 Faye

  • Une application backend Symfony2
  • Une application client HTML / JS
  • Une passerelle Faye server (node.js) pour l’envoi de notifications au client

LexikJWTAuthenticationBundle – Symfony2 REST API Authentification

Lexik vous présente aujourd’hui LexikJWTAuthenticationBundle, destiné à vous aider à mettre en place rapidement un système d’authentification entre votre API REST Symfony2 et d’éventuels clients Javascript (AngularJS, Ember.js, Backbone.js) ou mobiles.

Contexte

Les bonnes ressources concernant la mise en place d’une API REST Symfony2 ne manquent pas :

Mais peu d’informations claires sont disponibles sur l’authentification auprès d’une telle API. Et les stratégies dans ce domaine ne manquant pas, il va falloir faire un choix… Et chez Lexik on a  choisit le petit standard qui monte : le Json Web Token (JWT).