Développement avec le framework PHP Symfony

J'ai découvert le framework Symfony avec la version 1.0 qui utilisait l'ORM Propel. Depuis je n'utilise plus que le framework Symfony ou un ensemble de ses composants pour tous mes projets (pro ou perso). Il y a beaucoup à écrire sur ce framework, dans les articles ci dessous je partage essentiellement sur son utilisation sans pour autant revendiquer "la bonne" façon de faire car les cas d'usage change pour chaque projet.

Utilisation d'Elasticsearch avec Symfony et la librairie elasticsearch-php

Elastic qui édite Elasticsearch met à disposition la librairie elasticsearch-php. Cette lib simple propose un client à l'API avec toutes les options possible pour se connecter. Son avantage étant d'être léger et de laisser aux développeurs le choix de l'implémentation pour l'utiliser. C'est une très bonne alternative à la librairie Elastica et sa couche d'abstration. Pour ce blog, je l'utilise avec Twig pour gérer mes index mais aussi pour requêter l'API. Lire la suite

Controler automatiquement la sécurité de ses dépendances avec SensioLabs security checker, Jenkins et Phing

Aujourd'hui, nous incluons toujours plus de librairies externes dans nos projets. Même si l'on y gagne beaucoup de temps, il n'est pas exclut que nous introduisions des failles de sécurité. Ce contrôle n'est malheureusement pas systématique mais surtout rarement automatisé. Je montre dans cet article comment automatiser ce contrôle en utilisant l'outil Security Checker de SensioLabs à travers une tâche Phing. C'est aussi l'occasion de parler un peu plus des tâches sous Phing qui permettent de faire beaucoup de chose. Lire la suite

Protéger son authentification symfony3 contre les attaques par force brute

Tout formulaire d'authentification est susceptible d'être attaqué par un hacker (enfin plus un robot) via une brute force. Cette attaque consiste à tester des couples login/password jusqu'à en trouver un qui permet de s'authentifier. Dans cette article je vais vous montrer comment se protéger facilement de ces attaques dans une application Symfony3 ou 2 via l'utilisation des Events de Symfony. C'est aussi l'occasion d'utiliser le composant cache introduit dans Symfony 3.1. Lire la suite

Tags et CompilerPass de Symfony2 expliqués par l'exemple

Le container de dépendance est le composant central de Symfony2, tout le monde l'utilise. Moins sont les développeurs qui utilisent les tags dans la définition d'un service et malheureusement peu savent comment ça marche. C'est l'object de cet article, montrer par l'exemple l'utilité des tags et leur utilisation via le CompilerPass. Cela permet de réduire les dépendances entre les classe facilite la maintenabilité du site. Lire la suite