Symfony2: étendre globalement les options des FormType avec l'injection de dépendance (MAJ)

J'ai eu besoin de modifier les options que l'on peut passer à un Type afin de retrouver l'option help qu'il y avait dans les widgets de symfony 1. Dans cet article je vous présente comment j'ai ajouté cette option dans les Type de symfony2 sans avoir à surcharger tous les Types. Mise A Jour: grace au commentaire j'ai découvert les Forms Extension, l'article les utilise.

Lire la suite

Manipulation des dates et heures en PHP5 avec la classe native DateTime

Suite à l'article sur la manipulation des dates en SQL, je me suis rendu compte, qu'en fait, la manipulation de date en php n'était pas si simple et connu que ça. Il existe beaucoup de fonctions sur les dates en PHP5 et je trouve encore pas mal de code récent qui s'embrouille à essayer de calculer des dates avec des mktime, en manipulant des timestamp.... Alors qu'une class bien pratique existe: DateTime. C'est donc elle, et ses comparses, que je vais présenter.

Lire la suite

Tester unitairement les méthodes renvoyant des exceptions avec PHPUnit

De plus en plus, en PHP5, on renvoie des exceptions lorsque une erreur survient plutôt que les classique booléen true ou false. Dans cet article je vais aborder le cas des tests unitaires avec PHPUnit et comment tester les exceptions que renvoie notre code.

Lire la suite

I18nSluggableBehavior pour gérer les slugs dans une base I18n avec Propel

L'ORM Propel est livré en standard avec 2 behaviors quasi indispensables.SluggableBehavior pour générer des slugs qui seront utilisés dans les URL et I18nBehavior qui permet de gérer l'internationalisation dans la base de donnée. Dans cet article, j'explique comment et pourquoi j'ai mixé ces 2 behaviors pour créer mon behavior: I18nSluggableBehavior.

Lire la suite

Parcourir des dossiers et filtrer les fichiers n'a jamais été aussi simple avec la SPL de PHP5

Dans la Simple PHP Library (SPL pour les intimes), on trouve des classes et interfaces permettant de parcourir simplement les dossiers et fichiers. Il est même possible et très simple de créer un filtre qui permet de restreindre le résultat.

Lire la suite

Ajouter les classes Query de Propel 1.6 au Service Container de Symfony 2

L'ORM Propel reste une alternative intéressante à Doctrine même dans Symfony 2. L'intégration de Propel dans sf2 est moins forte que celle de Doctrine, mais il est possible de s'en rapprocher et d'avoir accès aux classes Query de Propel à travers le conteneur de service, c'est le sujet de cet article.

Lire la suite

Présentation de la librairie Imagine pour la manipulation des images en PHP

Imagine est une librairie PHP 5 orientée objet permettant de manipuler les images dans un contexte objet. Il s'agit d'une couche d'abstraction aux différents moteurs de manipulation d'image comme GD ou Imagick.

Lire la suite

Lire et écrire facilement des fichiers CSV avec la SPL de PHP5

Importer ou exporter des données au format CSV est un grand classique pour une application métier ou un back office. Peu connu, la Standard PHP Library permet de manipuler facilement les fichiers CSV que ce soit en lecture ou en écriture via la classe SplFileObject.

Lire la suite

Symfony2 en action, 1 mois pour tout changer (part 2)

Dans l'article précédent, j'ai présenté la mise en place de Symfony2 et mon choix de version. Aujourd'hui, une nouvelle étape dans le développement du site: Le Bundle. L'élément de base de tout projet Symfony2, il n'a pas d'équivalent dans Symfony 1 mais s'approche de l'architecture et de l'utilisation théorique des Plugins.

Lire la suite

Adoptez la programation orinetée objet (POO) en javascript

Un titre provocateur pour les développeur aguerris en effet il n'est pas possible d'utiliser la Programmation Orienté Objet en javascript comme on le fait en PHP ou Java... Mais le javascript permet la Programmation Orienté Prototype et ça change tout. Si vous êtes fans de la POO lisez cet article et vous ne verrez plus jamais le javascript de la même façon.

Lire la suite