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

Plugin pour utiliser une libriaire PHP5.3 avec des namespaces dans Symfony 1.4

De plus en plus de librairie PHP utilisent les nouveautés de PHP5.3 notamment les namespace. Dans cet article, je vous présente un plugin simple que j'utilise pour charger ces librairies dans un projet Symfony 1.4

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

Manipulation des dates et heures dans les requêtes SQL avec MySQL

Manipuler les dates dans un langage de programmation (PHP, java....) est simple et connu de tous. Mais qu'en est il dans la base de donnée MySQL? Dans cet article je présente ce qu'il est possible de faire dans les requêtes SQL: opération, intervalle de date...

Lire la suite

Comment mettre à jour et/ou compléter son projet Symfony 2.1 avec Composer

Sur le papier il me semblait simple de faire évoluer mon projet Symfony 2.1 avec Composer. Mais l'ajout de nouveaux bundles externes nécessite une lecture approfondie de la documentation et faire évoluer la librairie Symfony de tag en tag est un véritable jeu de piste. Dans cet article, je résume les procédures pour gérer le cycle de vie d'un projet Symfony 2.1 avec Composer. (MAJ 10/02/2013)

Lire la suite

Initialisation d'un projet Symfony 2.1 avec un dépôt Git et Composer

Dans cet article je présente une procédure pour démarrer un nouveau projet Symfony 2.1 qui sera versionné sous Git et dont les dépendances seront gérées avec Composer. Je couvre également l'installation et la configuration de Propel qui est utilisé à la place de Doctrine2 pour ce projet.

Lire la suite

Utilisation de l'API Product Advertising d'Amazon dans Symfony 1.4 à l'aide du Zend Framework

Je n'ai trouvé aucun plugin Symfony permettant d'interroger facilement l'API d'Amazon Product Advertising. Par contre le Zend Framework propose nativement une librairie pour cette API. Deux solutions s'offre à moi, écrire une librairie et la publier dans un plugin ou intégrer le Zend Framework dans Symfony 1.4. J'ai choisi la deuxième solution, plus rapide, plus simple et plus robuste, voici comment j'ai fait.

Lire la suite