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

Appliquer les principes de CI/CD aux migrations SQL avec Jenkins et un peu de bash

Écrire des tests unitaires ou fonctionnels sur du code est quasiment devenu un standard. Avoir un serveur qui automatise la vérification de ces tests et qui déploie le code est l'objectif accomplis de beaucoup d'équipes de développement. Malgré cela, ces bonnes pratiques sont rarement mise en place pour les migrations de schéma de base de donnée. Dans cet article, je vais vous montrer comment avec un peu de bash et Jenkins, je testes et j'automatise mes migrations SQL. Lire la suite

Controler le nombre de réessaie d'un message avec x-death dans RabbitMQ

Parfois le traitement d'un message provoque une erreur. Dans ce cas, il est courant de déplacer ce message dans une autre queue pour réessayer de le traiter plus tard. Tout cela peut être automatisé dans RabbitMQ avec les option DLX/DLK et l'application d'un TTL. Mais attention de ne pas créer une boucle infinie de tentative de traitement, dans cet article je vais vous présenter x-death pour contrôler le nombre de réessaie. Lire la suite

Sécuriser les cookies de son application web

La plupart des sites utilisent des cookies. Que ce soit pour du tracking ou de la persistance de données, il faut bien avouer que les bonnes pratiques de sécurité ne s'appliquent pas souvent. Dans cet article je vais donc vous présenter les différentes options disponible en PHP et comment les mettre en œuvre avec Symfony. Lire la suite

Ma première expérience en tant que conférencier

Retour d’expérience sur ma première fois en tant que speaker, c'était à Montpellier pour le PHP Tour 2018 organisé par l'AFUP. Lire la suite

Utiliser un wildcard pour donner des droits sur des tables à un utilisateur avec MySQL et MariaDB

L'attribution de droit dans MySQL et MariaDB est parfois un casse tête surtout si l'on souhaite avoir un contrôle par table pour un utilisateur. Il est possible d'utiliser un wildcard dans la commande Grant mais sa syntaxe n'est pas des plus explicite. Lire la suite

Config pour ne plus taper ses mots de passe MySQL et plus encore avec les Options file

Avez vous déjà pensé à utiliser le fichier de configuration .my.cnf pour faciliter la connexion à vos bases de donnée MySQL ou MariaDB? Cette configuration est très pratique quand l'on a à gérer plusieurs bases de donnée et/ou plusieurs serveurs. Je vous propose donc une présentation de ce que l'on peut faire avec dans cet article. Lire la suite

Quel format utiliser pour stocker des dates en base de données avec MySQL/MariaDB?

Il existe plusieurs façons de stocker des dates en base de données, le choix n'est pas si simple, surtout si on a besoin de la timezone. Dans cet article j'explique les différentes solutions avec leurs avantages et inconvénients. Lire la suite

Modifier la structure des tables mysql sans bloquer l'utilisation avec pt-online de Percona

Les modifications de structure de table (alter table) en base de donnée peuvent parfois prendre beaucoup de temps et deviennent une tache sans cesse repoussée par les admins pour finalement être souvent jouée à des heures tardives. Pourtant il existe des outils pour répondre à cette problématique ; pt-online de Percona Toolkit est l'un d'entre eux. Lire la suite

Compte rendu du Forum PHP 2017 à Paris de l'AFUP

J'étais à Paris la semaine dernière pour le Forum PHP organisé par l'AFUP. Encore une belle édition avec beaucoup de conférences intéressantes. Voici un résumé des conférences auxquelles j'ai assisté. MAJ 14/11/17: ajout des vidéos Lire la suite

Recherche