Permettre un embeddable Doctrine d'être nullable

Doctrine propose une fonctionnalité très utile pour créer des propriétés objets sur vos entité, il s'agit des embeddable. Les embeddables permette de créer des objets dont les propriétés seront stockés dans la même table que l'entité à laquelle ils appartiennent (une sorte de one-to-one dans la même...

Lire

Créer une configuration sémantique dans Symfony sans bundle

Créer une configuration sémantique dans Symfony sans bundle

Depuis quelque temps et avec l'arrivé de Flex, le découpage applicatif en bundle ne fait plus partie des bonnes pratiques Symfony. Si cela amène plus de simplicité dans le code, un des avantages des bundles était leur capacité à étendre la configuration du framework grâce au répertoire DependencyInj...

Lire

Boucler sur les jours entre deux dates PHP

Boucler sur les jours entre deux dates PHP

Il m'arrive souvent de devoir boucler sur les jours entre deux dates en PHP pour par exemple créer des tableaux, construire des graphiques ou des statistiques. Voici une façon élégante de le faire en utilisant la classe \DatePeriod. En choisissant un interval d'un jour, il est possible de boucler su...

Lire

Découper une chaine de caractère mais avec plusieurs séparateur en PHP

Découper une chaine de caractère mais avec plusieurs séparateur en PHP

La fonction explode est très connu en PHP. Elle permet de découper une chaine de caractère en fonction d'un séparateur. explode('-', 'foo-bar-foobar'); // ['foo', 'bar', 'foobar'] La fonction preg_split est moins connu, elle permet de découper une chaine de caractère non plus en fonction d'un sépara...

Lire

Générer des UUIDv4 depuis MySQL

Générer des UUIDv4 depuis MySQL

Introduction Les UUID sont de plus en plus utiliser pour identifier des resources dans une base de données. Ils sont généralement générer avec l'insertion de vos données. Néanmoins, ils y a des cas où générer l'UUID depuis MySQL peut être très utile. Je pense notamment à la migration de données ou à...

Lire

Modifier l'auteur des commit sur un arbre git

Modifier l'auteur des commit sur un arbre git

commit-tree Si comme moi vous utilisez plusieurs identités différentes pour committer votre code sur vos repos git (par exemple votre nom et email professionnels pour le travail et un pseudo et votre email perso pour vos projets perso), il vous est surement déjà arrivé d'avoir des commits avec le ma...

Lire

Active l'option case-sensitive sur PHPStorm

Active l'option case-sensitive sur PHPStorm

Lorsque vous utilisez un système de fichier sensible avec PHPStorm, celui ci devrait vous montrer le message erreur suivant vous indiquant que le logiciel n'est pas configurer pour gérer la casse. Filesystem Case-Sensitivity Mismatch The project seems to be located on a case-sensitive file system. ...

Lire

Afficher les fichiers cachés sur MacOS X

Afficher les fichiers cachés sur MacOS X

Par défaut MacOS X masque tout les fichiers et dossier commençant par un point. Ces fichiers sont souvent des fichiers système auxquels il ne vaut mieux pas toucher, bonne chose qu'ils soient cachés. Mais le nom de fichier commençant par un point est également une convention pour beaucoup de fichier...

Lire

Bannir les IP qui tentent d'accéder à certaines URL avec fail2ban

Bannir les IP qui tentent d'accéder à certaines URL avec fail2ban

Si vous administrez un site web en production vous avez certainement été confronté a des vagues de crawl d'urls potentiellement compromettantes dans vos logs. Vous savez les : /phpmyadmin /wp /wp-admin /wordpress ... alors que votre application n'utilise ni phpMyAdmin ni Wordpress. Ces visites so...

Lire

Retour sur la nCrafts 2016

Retour sur la nCrafts 2016

Les 12 et 13 mai se déroulait à Paris la nCrafts, une conférence indépendante et internationale sur le développement logiciel. J'y était présent en tant que développeur et photographe. Le thème principal de l’événement était le software craftsmanship / “l’artisanat du logiciel” et l’accent était mi...

Lire

Réaliser simplement un benchmark d'une page web avec Apache Benchmark

Réaliser simplement un benchmark d'une page web avec Apache Benchmark

Apache Benchmark est un outils de benchmark HTTP permettant de mesurer la performance d'un serveur Web, en particulier le nombre de requête qu'il peut servir par seconde. Installation Sur Linux vous trouverez Apache Benchmark dans le paquet apache2-utils : apt-get install apache2-utils Sur Mac vous ...

Lire

Git : Supprimer toutes les branches locales mergées sur master

Git : Supprimer toutes les branches locales mergées sur master

Si vous utiliser un workflow git vous êtes probablement amené à avoir une multitude de branches. Voici une petite astuce pour faire le ménage dans vos branches git. Cette commande supprimera toute les branches qui ont été mergé sur master : git branch --merged | grep -v "\*" | grep -v master | xargs...

Lire

Répartir les traductions dans des fichiers différents

Répartir les traductions dans des fichiers différents

Le composant de traduction Symfony dispose d'un composant de traduction permettant de définir les traductions de vos textes dans plusieurs langues. Ces traductions seront stockées dans des fichiers (yml, xlf ou autre, par exemple messages.fr.yml). Les domaines de traductions Le composant de traducti...

Lire

Utiliser plusieurs id d'entité dans les routes sans ajouter de ParamConverter

Utiliser plusieurs id d'entité dans les routes sans ajouter de ParamConverter

Le cas simple Symfony permet, grâce aux ParamConverter, de convertir automatiquement un paramètre d'url en une autre valeur. Ce quelque chose que j'utilise beaucoup pour récupérer mes entité grâce au DoctrineParamConverter. Par défaut ce converter va associer le paramètre id d'une route avec l'entit...

Lire

Supprimer les données sensibles d'un historique GIT avec BFG Repo Cleaner

Supprimer les données sensibles d'un historique GIT avec BFG Repo Cleaner

BFG Repo-Cleaner est un outils écrit en Scala permettant de supprimer des fichiers ou textes d'un historique git comme le fait git-filter-branch mais beaucoup plus rapidement. Installation Télécharger la dernière version sur le site de BFG. Exécutez BFG à l'aide de la commande suivante afin de verif...

Lire

Veille de la semaine #201601

Donne du style à ton JavaScript Le code styling regroupe toute les conventions et les normes d'indentation et d'alignement du code source. Beaucoup de norme (PSR-0, PSR-1, PSR-2, Symfony, ...) et d'outils (phpcs, php-cs-fixer, ...) on vu le jour pour le language PHP. Mais le code styling, ou en tout...

Lire

Veille de la semaine #201553

How to Become a Better Node.js Developer in 2016 Voici un article sur comment devenir un meilleur développeur Node.js en 2016. Cet article regroupe des astuces, des conseils et des bonnes pratiques de développement sous Node.js. Il revient notamment sur de nouvelles fonctionnalités apportées par ES6...

Lire

Veille de la semaine #201552

ElasticSearch presentation at PHP North West 2015 in Manchester Voici une présentation d'ElasticSearch par Thijs Feryn au PHP North West Conference 2015 qui s'est déroulé à Manchester les 2, 3 et 4 octobre 2015. Vous pouvez revoir cette presentation qui a été entièrement filmé durant laquelle Thijs ...

Lire

Veille de la semaine #201551

Quick Tip: Stop Writing Loops and Start Thinking with Maps Face au besoin d'appliquer un traitement à un tableau, la plupart de développeur pense immédiatement à l'utilisation d'une boucle for ou foreach. Ce n'est pourtant pas la solution la plus approprié comme nous l'apprend l'article "Quick ...

Lire

Veille de la semaine #201550

Let’s Encrypt : joies… et déceptions ! Let's Encrypt se présente comme la solution pour que tout le monde puisse simplement passer à https. En effet pour passer votre serveur en https et optenir le précieux petit cadenas vert dans la barre d'url, vous deviez vous procurer un certificat SSL valide au...

Lire