Installer Apache 2, MySQL 5 et PHP 5.3 sur Mac OS 10.7 Lion avec MacPort

Bien que Apache et PHP soient pré-installés sur Mac OS X, j’évite depuis plusieurs années de les utiliser. Au départ pour un problème de compilation d’une extension PHP, aujourd’hui pour ne plus être dépendant d’Apple dans la mise à jour de ces logiciels.

J’utilise donc MacPort, un excellent gestionnaire de packages pour Mac OS X, qui permet de compiler et d’installer toutes sortes de logiciels open-source bien utiles.

La sortie récente de Mac OS X Lion, la nouvelle version du système d’exploitation d’Apple pour ordinateur, a été l’occasion de ré-installer complétement mon environnement LAMP…

Je vous propose ici un guide sur l’installation et la configuration d’Apache, MySQL et PHP avec MacPort…
Continuer la lecture de « Installer Apache 2, MySQL 5 et PHP 5.3 sur Mac OS 10.7 Lion avec MacPort »

Utiliser l’extension Taggable de Doctrine avec Symfony 1.3/1.4

Jusqu’à symfony 1.2, si vous vouliez ajouter facilement de nouvelles fonctionnalités au framework PHP5 il fallait se diriger vers son importante base de plugins. Avec symfony 1.3 et 1.4, bien sûr vous pouvez toujours compter sur les plugins symfony mais viennent maintenant s’ajouter les extensions pour Doctrine

Si vous utilisez Doctrine comme Object Relational Mapper (ORM), vous connaissez certainement les behaviours Timestampable, Sluggable ou encore SoftDelete. Les extensions Doctrine vous permettent justement d’en ajouter de nouveaux très facilement, en quelques clics ou lignes de commande.

Aujourd’hui, je vous propose d’installer et d’utiliser l’extension Taggable. Cette dernière permet d’ajouter des tags sur les modèles de votre choix. L’intérêt peut être de faire des recommandations ou retrouver des éléments relatifs à un autre.

Continuer la lecture de « Utiliser l’extension Taggable de Doctrine avec Symfony 1.3/1.4 »

Critique du livre « Symfony 1.3 Web Application Development »

symfony 1.3 bookIl y a quelques semaines, l’éditeur PacktPublishing m’a proposé d’écrire une critique de son livre fraichement sorti intitulé « Symfony 1.3 Web Application Development » et écrit par Tim Bowler et Wojciech Bancer. Comme son nom l’indique, le livre est consacré au framework PHP5 en vogue en ce moment, j’ai nommé symfony…

« Symfony 1.3 Web Application Development » compte un peu plus de 200 pages que je viens tout juste de terminer. Alors, convaincu ou déçu ? Voici mon avis…

Continuer la lecture de « Critique du livre « Symfony 1.3 Web Application Development » »

Traduire complètement l’admin generator de Symfony

Si vous avez déjà essayé de traduire l’admin generator de Symfony vous avez probablement été confronté au problème : certaines chaînes ne peuvent pas être traduites car elles n’utilisent pas le système d’internationalisation (i18n) du framework. Ces chaînes sont présentes directement dans les widgets dédiés aux formulaires de filtrage. C’est le cas de is empty, yes or no ou encore de from […] to […].

En faisant une recherche rapide sur Internet, vous trouverez quelques solutions mais elles nécessitent de modifier tous les formulaires du projet. Sur un petit projet, 2-3 formulaires, cela peut être acceptable mais avec une soixantaine de formulaires cela peut vite devenir embêtant.
Continuer la lecture de « Traduire complètement l’admin generator de Symfony »

Symfony : Gérer un formulaire dans un composant

Dans un projet Symfony, comment gérer la validation d’un formulaire lorsqu’il est dans un composant ? C’est la question que l’on m’a posé cette semaine la semaine dernière (le temps passe vite…).

Tout d’abord, qu’est-ce qu’un composant dans Symfony ? Il s’agit en quelque sorte d’une action qui est réutilisable entre les différents modules de l’application. A la différence des « partials », qui sont « que » des templates, les composants contiennent de la logique : le plus souvent, récupérer un ou plusieurs modèles.

Pour revenir à la question, le problème n’est pas de gérer la validation à proprement parler, Symfony va s’en occuper grâce au forms framework mais plutôt de savoir où envoyer le visiteur une fois le formulaire soumis et comment, à la fin, le rediriger sur la page initiale, celle où il a rempli le formulaire.

Continuer la lecture de « Symfony : Gérer un formulaire dans un composant »

Symfony : Utiliser un fichier de config personnalisé

Lorsque l’on développe un projet, on a (presque?) toujours un certain nombre de paramètres propres à ce dernier. Cela peut-être le nom du site internet, la clé d’accès à un WebService ou encore la taille des miniatures à générer. De façon générale, il s’agit de tous ces paramètres communs à la fois au frontend et au backend du projet.

Tout bon développeur qui se respecte, je ne laisserai pas ce genre de paramètre perdu dans la logique métier. Tout d’abord parce que ça n’a absolument rien à faire là et ensuite parce qu’il ne serait pas facile de modifier le paramètre plus tard. Une bonne pratique est donc de créer un fichier à part pour stocker ces paramètres…

Continuer la lecture de « Symfony : Utiliser un fichier de config personnalisé »

Installer Apache, MySQL et PHP sur Mac OS 10.5 avec MacPorts

Suite la récente mésaventure que j’ai eu avec mon MacBook, j’ai dû ré-installer un environnement AMP sur mon ordinateur. L’occasion pour moi d’écrire ce billet et de présenter un outil génial pour Mac…

J’en ai déjà parlé, la version de PHP fournie avec Mac OS X Leopard est assez… épurée : pas de GD ou de PEAR par exemple et la compilation d’extensions ne marchent pas (cf. mon billet sur Runkit). Pour une utilisation (très?) basique de PHP cela suffira mais si vous voulez, par exemple, manipuler des images il faudra utiliser une autre solution…

Continuer la lecture de « Installer Apache, MySQL et PHP sur Mac OS 10.5 avec MacPorts »

La documentation de symfony enfin en PDF !

C’est la bonne nouvelle de la semaine, la documentation de symfony est maintenant disponible au format pdf ! Je ne sais pas si il y avait une forte demande pour pouvoir la télécharger mais en ce qui me concerne ça toujours était un point gênant.

J’ai pris l’habitude de toujours télécharger la documentation des outils que j’utilise. L’intérêt ? La consulter même lorsque je n’ai pas de connexion Internet ou lorsque le serveur qui l’héberge est momentanément indisponible.

Voilà, maintenant je n’aurai plus besoin de récupérer les sources de la documentation sur le SVN de symfony, j’ai de jolis PDF :-)