BastNic's blog

Tag :

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 !


Mémo pour l'installation de pear dans Xampp 1.0.1

Il y a très longtemps j'utilisais MAMP que j'avais ensuite lâché pour xampp qui est maintenant mon installation par défaut. Pour être franc, je me rappelle vraiment plus pourquoi effectué ce changement...

Le include_path PHP de l'installation de xampp est faux de A à Z, alors que le dossier d'installation par défaut se nomme /Applications/XAMPP, la valeur de include_path vaut :

 include_path=".:/Applications/xampp/xamppfiles/lib/php"

De plus pear est installé dans /Applications/XAMPP/xamppfiles/lib/php/pear, donc non inclus dans le path php.

Corriger dont l'instruction include_path par :

 include_path=".:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear"

Je retourne à mon code. ++

ps : pour installer xdebug j'utilise la méthode trouvée sur ce blog qui utilise une build standalone générée pour l'IDE Komodo.


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.


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


Dotclear mis-à-jour

L'annonce de la sortie de la RC1.

Je vous conseille de lire l'article. Je n'ai pas moi-même le temps de décortiquer tout ça, ni de toucher à ce blog. Profitez-en bien.

Je retourne à mon Jelix. En plus TDW va peut-être bientôt l'utiliser...

Bon 1er mai.

ps : au passage je met en place un thème par défaut.. En attendant de pouvoir mettre à jour le mien en version RC1 (il semble fonctionner mais pas le temps de vérifier)


Sortie de Jelix 1.0.3

Un billet rapide pour vous signaler qu'une nouvelle version de la branche stable de Jelix est sortie hier soir : la 1.0.3.

Encore une belle mouture qui corrige un certain nombre de problèmes et qui apporte quelques menues fonctionnalités. Consultez le changelog pour en savoir plus.

L'accent est maintenant mis sur la version 1.1 qui apportera un graaaaand nombre de nouvelles fonctionnalités sur jForms.


Drupal me saoule

Non détrompez-vous, j'adore toujours Drupal mais...

Je dois développer un site en ce moment, en pleine bascule de la version 5 vieillissante à la version 6 encore trop jeune (un manque sérieux de module, de documentation, de support). Mais en même temps je dois me supporter jQuery 1... Alors que le projet jQuery en est à la 1.2.3 et que beaucoup beaucoup d'eau a coulé sous les ponts entre ces deux versions et que j'ai évidemment besoin des toutes nouvelles fonctionnalités. (Drupal 6 propose en standard jQuery 1.2.3).

Il y a bien un projet jquery_update mais il n'est pas très stable et c'est assuré de s'arrêter à la 1.2.1.
De même Taxonomy access Control a encore l'air foireux bien que fonctionnel.

Et je sais absolument pas quelle version choisir... Fait ch***.

ps : j'ai tout de même tout commencé sur Drupal 5, la mort dans l'âme... ps 2 : et je parle même pas de Views qui est en version alpha...


Jelix dispose maintenant d'un template à la création d'une nouvelle application

Il y a une semaine, quand vous créiez (j'ai vérifié dans mon bescherelle cette conjuguaison (pas sûr de moi sur le coup)) une nouvelle application via la commande

php lib/jelix-scripts/jelix.php --monapp createapp

Vous obteniez une magnifique page blanche[1] (comme remarqué par le sieur Régis). Ce n'était évidemment pas très attrayant. Le développeur qui en est à sa quinzième application Jelix s'en moquera comme de sa première chaussette mais la personne qui essaye Jelix pour la première fois sera étonnée par si peu de communication.

C'est maintenant un problème résolu avec la cloture des tickets 496 et 480.

Si votre installation est au top, vous verrez ceci :

Image_9.png

Si vous n'avez pas configuré l'accès aux fichiers web (js et css) Jelix vous aurez ça :

Image_10.png

Si votre installation craint (ce qui n'est pas mon cas, et je n'ai pas envi de cannibaliser mon installation pour les besoins de l'article), la classe jInstallChecker de Jelix vous signalera toutes les erreurs ou paramètres à corriger. Par exemple, ce qu'il faut faire en cas d'activation des magic_quotes etc.

J'ai conscience que la page est encore moche, que les textes sont largement améliorables mais en l'état elle fonctionne, est multilingue ce qui laisse la porte ouverte à d'autres contributions[2].

Notes

[1] la sobriété a pourtant son intérêt, mais trop c'est triste

[2] Je viens d'ouvrir un ticket à ce sujet : #510


- page 1 de 2