FAIL, FAIL, FAIL ? Again ?
Par Vincent le samedi 28 novembre 2009, 12:55 - Lien permanent
Après de longs mois de persévérance et d'attente, nous venons d'acquérir au travail une licence pour Zend Studio.
Je suis depuis un bon bout de temps (depuis la version 2.0 calamiteuse pour être précis) un utilisateur à moitié heureux de PDT. Zend Studio rattrape facilement tout ça — Normal, vu le prix !
dirons certain.
Bref, nous sommes satisfait. Mais là n'est pas le problème.
Non, le problème intervient lorsque je suis obligé de travailler sur une plateforme Vindose Vista, PHP 5.3 et une soudaine envie de débogage ou de profilage.
Laissez moi expliquer quelques points...
(Si par le plus grand hasard je me trompe, il est toujours possible de me recadrer dans les commentaires, c'est fait pour ça.)
Depuis quelque temps, il existe un site spécial pour se procurer les versions binaires vindosiennes de PHP. On y trouve ce paragraphe :
If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP
If you are using PHP with IIS you should use the VC9 versions of PHP
VC6 Versions are compiled with the legacy Visual Studio 6 compiler
VC9 Versions are compiled with the Visual Studio 2008 compiler and have improvements in performance and stability. The VC9 versions require you to have the Microsoft 2008 C++ Runtime (x86) or the Microsoft 2008 C++ Runtime (x64) installed
Do NOT use VC9 version with apache.org binaries
Cela semble clair pour quelqu'un qui comme moi travaille avec Apache 2.2.
Il vient ensuite se greffer à la version du compilateur des versions Non Thread Safe utilisées pour s'exécuter dans un environnement CGI ou FastCGI.
Jusqu'à là aucun problème pour le développeur motivé. Non, le problème vient de Zend et de son débogueur, le bien nommé Zend Debugger qui va bien avec Zen Studio
.
Il faut déjà se procurer le fameux débogueur que l'on finit par trouver sur la page de téléchargement de Zend Studio. Une autre page existe, mais la version du débogueur est, à l'heure de cette complainte, de 2008 et vous n'y trouverez pas de version pour PHP 5.3.
La surprise intervient quand on décompresse l'archive. Seule une version Non Thread Safe pour PHP 5.3 est disponible. On oublie donc le bon vieux mod_php
. On oubliera aussi par la suite le mode CGI ou FastCGI pour la simple et bonne raison que le binaire du débogueur de Zend est compilé avec VC8.
Pour vindose point de salut ? Peut être pas puisque c'est là qu'intervient la surpuissance du cloisonnement vertical et de Zend Server CE. J'installe donc le truc par dépit.
Et là surprise, on peut enfin déboguer ou profiler ! Mais impossible de faire fonctionner le bousin avec une pincer de mod_rewrite
; l'exécution des scripts plante lamentablement.
L'impasse ? Il existe bien une astuce pour activer le support de Xdebug dans Zend Studio. Mais un bug génant vient gâcher la partie.
Moralité ?
Vindose est vraiment un système d'exploitation étrange. Formidable pour jouer. Une galère dès que vous voulez vraiment jouer.
La faute au çapuecestpalibre
. Mais franchement, je ne me vois pas compiler quoi que ce soit avec vindose comme OS et Zend ne fournit pas les sources de son Zend debugger.
Je n'ai pas retrouver ce problème avec Mac OS X. J'utilise MacPort pour compiler PHP et Zend fourni les binaires qui vont bien. Xdebug fonctionne aussi parfaitement.
Je n'ai pas encore tester avec une distribution Linux. Serai-je étonné de voir que cela ne fonctionne pas ? Non.
Cela devient difficile de faire du close source du moment où plusieurs environnements d'exécution hétérogènes sont à prendre en compte. Juste étonnant que, dans ce cas particulier, c'est vindose qui trinque (vindose est toutefois à mon sens le moins adapté pour le développement web).
Zend ne s'en sort pas grandi en n'assument pas complètement la diffusion de leur travail. D'ailleurs, il serait judicieux pour eux de supporter entièrement les fonctionnalités de Xdebug ; c'est à dire débogage et profilage. Mais je rêve la bouche ouverte.