BastNic's blog

Catégorie :

PHP

Fil des billets

Switcher entre PHP 5.2 et PHP 5.3 sur Mac OS X et Homebrew

J'ai besoin au quotidien de pouvoir coder en PHP. Cela peut aller du tout nouveau framework de tests atoum, symfony 2… à du code pourri développé par d'autres et/ou du Drupal 6. Je n'ai donc pas trop le choix, il me faut PHP 5.2 sur ma machine.

Jusqu'à maintenant j'avais opté pour la facilité avec une installation complètement différente (vm, autre serveur) pour PHP5.3 et ça fonctionnait très bien. Mais c'était une situation stupide et bancale, genre un "proto en prod".

Les outils genre MAMP, Xampp étaient proscrits et j'ai une sainte horreur de MacPort et Fink. J'aime en revanche beaucoup homebrew. Malheureusement, PHP rentre en conflict avec la politique du créateur de ne pas surcharger les libs inclues dans Mac OS X, ce qui est le cas de PHP avec la version 5.3.2 (que je ne compte pas utiliser).

Pour avoir les deux et pouvoir switcher facilement, j'ai donc utilisé des forks git hébergés sur github :

  • PHP 5.2 depuis bozktek, qui vient juste de passer à la version 5.2.17 et qui propose une option de compilation FPM (que je n'utilise pas)
  • PHP 5.3 depuis ampt

Dans ces deux cas, je n'utilise pas exactement la version proposée, mais *oh joie* d'Homebrew et Git, modifier une Formula est très aisé et tout est sauvegardé / packagé / versionné avec git. Du bon combo gagnant !

La formula de PHP 5.2 proposé plus haut se nomme *php52* alors que celle de PHP 5.3 *php*. C'est gentil, ça évite les conflits.

Pour finir les installation ou plus de détails, je vous invite à lire le dernier billet de mon excellent collègue de Clever Age : Vincent Lemaire, Apache, mySQL et PHP 5.3 avec Homebrew. Ce qui nous intéresse ici c'est de pouvoir switcher entre l'un et l'autre.

Pour passer de PHP 5.2.17 à PHP 5.3.5

bash
# binaries files links
cd `brew --prefix` 
brew unlink php52
brew link php

# apache configuration
cd /tmp 
sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.bak
sed -e "s/php\/5.3.5/php52\/5.2.17/g"  /etc/apache2/httpd.conf > httpd.conf.tmp
sudo mv httpd.conf.tmp /etc/apache2/httpd.conf
sudo apachectl restart

Pour passer de PHP 5.3.5 à PHP 5.2.17

# binaries files links
cd `brew --prefix` 
brew unlink php52
brew link php

# apache configuration
cd /tmp 
sudo cp /etc/apache2/httpd.conf /etc/apache2/httpd.conf.bak
sed -e "s/php52\/5.2.17/php\/5.3.5/g"  /etc/apache2/httpd.conf > httpd.conf.tmp
sudo mv httpd.conf.tmp /etc/apache2/httpd.conf
sudo apachectl restart

Puis

A vous de voir si vous allez plus loin : configuration php.ini, extension PHP. Mais le principe est là.

Je me suis intégré une version plus complexe de tout ça dans mon workflow de gestion de configuration de ma machine à base de git, fabric, lien logique pour en glander le moins possible, et c'est bien pratique et très élégant !

ps : chasse aux trolls, en python virtualenv c'est vachement plus intelligent ET JE LE SAIS !


Je serais au Forum PHP 2010, et vous ?

Cette année encore, l'AFUP rassemble pour son Forum PHP une palanquée de très grands du monde PHP, dont Rasmus Lerdorf, son créateur.

Il y aura tout un panel de conférences toutes plus intéressantes les unes que les autres pendant ces deux jours.

Avec un peu de (mal)chance, vous pourrez assister à celle dont je suis co-conférencier avec mon excellent collègue Xavier Lacot. Nous y traiterons de la place des frameworks dans l'écosystème PHP.

Au plaisir de vous y rencontrer !

Edit : les slides : http://xav.cc/frameworks


Drupal : revert d'une features qui utilise taxonomy_export

Un collègue et ami me demande :

mmmh en parlant de feature... comment ça ce passe quand c'est supplanté mais que le revert fonctionne pas j'ai ça sur Taxonomy export

Hmmm, élémentaire mon cher Watson, il suffit de regarder le code :

/**
 * Implementation of hook_features_export_revert()
 */
function taxonomy_export_features_export_revert($module = NULL) {
  return TRUE;
}

Ah oui ben bizarrement ça fait pas grand chose.

ps : je sais c'est bizarre de sortir ce blog de la torpeur pour ça, mais j'aime les trucs stupides.


Jelix : gestionnaire de messages à passer au template

Quand j'utilisais Code Igniter, j'utilisais beaucoup la librairie Messages développée par Vijay Mahrra et Sheikh Ahmed. C'était pratique à utiliser et permettait de générer facilement des messages qui sont affichés par la suite à l'utilisateur.

Par exemple : "Machin a bien été créé", "Truc a bien supprimé avec succès", "J'aime manger", "une erreur est survenue", etc.

Bizarrement dans tous mes projets Jelix, je n'en avais pas eu spécialement besoin. Du coup je n'y avais pas repensé. Mais depuis, j'en ai l'utilité. A peine évoqué le sujet que l'ami Loic Mathaud découvre qu'il en a aussi besoin.

Donc il l'a développé. Au final ça fait pas grand chose en nombre de lignes, mais c'est toujours ça de moins que j'aurais à développer moi-même :p.

L'API est consultable sur le ticket.


Publication électronique de mon article sur Jelix (initialement dans Linux+DVD)

Je viens d'attacher mon article paru dans Linux+DVD dans mon billet traitant de sa sortie.

Filez le télécharger !

ps : l'exemple que j'utilise dans mon article parle d'une plateforme de blog. C'est également l'exemple que Laurent Jouanneau a utilisé à l'atelier Jelix des RMLL.


Changement adresse SVN de Berlios (projet Jelix par exemple)

Les développeurs de Jelix l'ont remarqué, depuis peu il n'y a plus moyen d'accéder au dépôt Jelix en svn.

Pour corriger le problème, il suffit de passer du protocole svn à https pour l'adresse du dépôt :

svn switch --relocate svn://svn.berlios.de/jelix/trunk https://svn.berlios.de/svnroot/repos/jelix/trunk .

Gestionnaire de snippet en Jelix

C'est décidément la journée des chassés-croisés.

J'ai développé il y a deux mois un script js pour générer une table des matières, NiKo a créé le sien en 14321x mieux.

Aujourd'hui j'ai enfin commencé à développer le gestionnaire de snippets en Jelix que l'on (la team jelix) repousse à plus tard depuis des mois avec pour modèle http://snippets.prendreuncafe.com/ propulsé par Symfony et snipeet.

Snipeet a l'air très bien foutu, mais par pur honneur/principe/classe c'est difficilement imaginable d'utiliser une appli en Symfony pour se servir sur le site de Jelix (pour les véritables touristes qui passent par ici, Symfony et Jelix sont "concurrents" dans la mesure où ce sont tous les deux des frameworks PHP5).

NiKo, j'ai une question : snipeet ne gère vraiment que le php/xml/js/css comme colorisation syntaxique de langages ? Pour l'instant j'utilise Geshi dans sa version 1.0.7 et c'est vraiment pas ça :

sharecode.png

(le design n'est évidemment pas du tout définitif)

La page du projet : http://forge.jelix.org/projects/sharecode

Bientôt (peut-être) une démo sur jelix.org :p.


Typo3 à l'Armée

Mise en situation, ma mère ne connait rien de rien en informatique, mon frère est un très bon utilisateur mais n'y connait rien aux outils du web. De plus, je n'ai jamais touché à Typo3 en profondeur (je suis Drupalien) mais de proches connaissances m'en parlent régulièrement.

Ma mère ce soir : Nicolas, tu connais Typo3 ?
Nicolas : non

A ce moment là, je suis à l'autre bout de la maison, mais mon oreille traîne toujours et elle est alertée par un nom familier dans mon monde passionné du web, mais qui n'a rien à faire chez moi.

J'accours et lui demande des explications (déjà, comment elle connaît ce nom là ?).

En fait il s'avère que le service de ma mère va publier du contenu sur un site en Typo3. Ma mère n'est pas capable de me dire si le site existe déjà, qui l'a fait etc.

Apparemment l'unique personne qui va maintenir (ou mettre en palce) le site est une toute jeune sortie d'un BTS Compta. Aucune formation prévue. Je vais me tenir au courant de cette histoire, ça va encore pouvoir s'avérer être drôle. Surtout si elle se met à demander de l'aide au service informatique où j'ai évolué quelques semaines.

M'est avis qu'elle va galérer un peu.


PHP bug on imagefill

Je viens de perdre ma soirée pour.... that !

Bataillé toute la soirée avec le plugin de template image de Jelix, mais il s'avère que le problème ne vient pas du plugin (qui fonctionne impeccablement sur mon xampp) mais de la lib gd de php5 sous debian etch.

Resolved with a fresher version of php5 : http://dotdeb.org/mirrors
 deb http://packages.dotdeb.org stable all
 deb-src http://packages.dotdeb.org stable all

Linux+ DVD de Juin 2008 : Développer efficacement avec Jelix

Ca y est, je l'ai dans les mains, le nouveau numéro de Linux+DVD contenant mon article de présentation et d'initiation à Jelix.

Êtes-vous Web ?


Et maintenant au travail ! Bastien Jaillot vous présentera le framework PHP Jelix, un outil qui vous facilitera considérablement votre tâche créatrice.

Dommage, pas de mention Jelix sur la couverture, mais tout de même un article de huit pages sur comment fonctionne Jelix, ses atouts et enfin un tutoriel "rapide" montrant le développement d'un moteur de blog.



premierepage.jpg

Au programme de numéro, vous trouverez aussi :

  • L'histoire et l'avenir du Web,
  • Conception 3-tiers d'un site web
  • Développer efficacement avec Jelix
  • Utilisation de Munin
  • ...
  • Revue des outils de programmation,
  • Webmastering et logiciels libres.

Je ne sais pas encore quand ce numéro paraîtra, sûrement dans les premiers jours de Juin.

Je retourne à mon code (Jelix évidemment), ++

MAJ : nous sommes début juillet, je publie le PDF


- page 1 de 3