Voici un petit tutorial sur l'installation du plugin PHP de Zend en version 0.1.7 à partir d'Eclipse 3.2. Je propose l'installation classique (en mode non geek
).
Pour les fainéants, vous pouvez directement télécharge le pack complet, comprenant Eclipse, les plugins JDT, EMF, GEF, GEM, Webtools, le plugin PHP ainsi que le debuggeur de Zend ici.
1. Pré-requis
Le plugin PHP de Zend nécessite les plugins graphiques, donc il vous faut installer GEF, EMF, JDT, et WTP (outils pour faire du web). L'installation de ces plugins n'étant pas très simple à cause des dépendances, je vous conseille de télécharger le pack WebTools Platform; All-in-one :
Pour ceux qui ont le plugin
PHPEclipse déjà installer, il faut le désactiver en allant dans le menu Help > Software Updates > Manage Configuration (Figure 1). Ensuite, sélectionnez le plugin dans la liste et désactivez-le (Figure 2).
2. Installation pas-à-pas
Vous êtes prêt à installer le plugin PHP et le debogueur de Zend. Pour cela, nous allons faire utiliser le gestionnaire de mise à jour intégré d'Eclipse.
- Allez dans le menu Help > Software Updates > Find & Install (cf. Figure 3)
- Sur l'écran qui apparaît, sélectionner "Search for new features to install" puis cliquez sur "Next".
- Puis
sur l'écran suivant, créez un nouveau site distant en cliquant sur "New
Remote site". - Choisissez un nom et entrez l'url suivante : http://downloads.zend.com/phpide (Figure 4).
- Cliquez sur "OK", sélectionnez ce site et cliquez sur "Finish". Attendez qu'Eclipse recherche les éléments à installer.
- Vous devriez arriver sur un nouvel écran vous présentant la liste des plugins disponibles (Figure 5).
- Sélectionnez Zend IDE puis cliquez sur "Finish". Sur l'écran de résumé, cliquer sur "Finish" pour lancer le téléchargement des plugins.
- Le plugin de Zend n'est pas signé donc un avertissement apparaît, validez pour terminer l'installation.
Une fois terminée, relancez votre environnement (Workbench) afin d'appliquer les changements.
Vérifiez que vous pouvez créer des projets PHP.
Je vous présenterai les fonctionnalités apportées par ce plugin dans un prochain billet, mais en attendant amusez-vous bien avec!
nicot Says
Thursday, August 10. 2006 at 15:03 (Reply)
Merci d’avance
rami Replied
Thursday, August 10. 2006 at 16:55 (Link) (Reply)
- ssleay32.dll
- libeay32.dll
- libmysql.dll
Ensuite, il suffit de décommenter les extensions que vous souhaitez activer dans le fichier php.ini.
Pensez aussi à vérifier que la directive extension_dir pointe bien vers le répertoire des extensions de php (c:\php\ext\)
personne Says
Friday, August 11. 2006 at 14:53 (Reply)
J'ai mis ces 3 fichiers dll dans mon répertoire "eclipse\plugins\org.zend.php.debug.debugger_0.1.1\php5\Windows".
Dans ce répertoire, PHP.ini ne contient que cette ligne: "zend_extension_ts=ZendDebugger.dll".
J'ai ajouté 3 extensions dans ce PHP.INI :
zend_extension_ts=ssleay32.dll
zend_extension_ts=libmysql.dll
zend_extension_ts=libeay32.dll
Cela ne marche pas.
Pourriez-vous être plus précis sachant que je suis débutant en PHP et Eclipse ?
Merci infiniment
rami Replied
Sunday, August 13. 2006 at 11:41 (Reply)
La configuration utilisée :
- Apache : C:/web/apache2
- PHP : c:/web/php
a) Window > Preferences > PHP > Installed PHP's
b) Ajout du chemin vers PHP (c:/web/php/php.exe)
1) Copier les fichiers ssleay32.dll, libmysql.dll, libeay32.dll vers c:/web/apache2/bin/
2) Modifier le fichier php.ini (par défaut situé dans c:/windows (sous XP, c:/winnt sous Windows 2000)
3) Chercher les lignes "extension=", décommenter les extensions à utiliser (pour Oracle, décommenter la ligne extension=php_oci8.dll)
4) Chercher la directive "extension_dir" et vérifier le chemin (pour ma config : extension_dir = "C:/w/php/ext/" )
5) Redémarrez le serveur web.
Sous Eclipse, créer un exécutable de debuggage ( Run > Debug > PHP Executable) et ajouter un point d'arrêt. Lancer le debug et la persepective debug est lancée.
J'espère que cela pourra vous aider
personne Says
Wednesday, August 16. 2006 at 14:56 (Reply)
Voici ma configuration utilisée :
- phpide-0.2.0_debugger-0.1.1-all-in-one-win32.zip
- Apache : C:\Program Files\xampp\apache
- PHP : C:\Program Files\xampp\php
Les fichiers ssleay32.dll, libmysql.dll, libeay32.dll existent dans C:\Program Files\xampp\apache\bin et j’ai utilisé les extensions (je me limite à MySql : php_mysql.dll). Mon code très simple fonctionne bien sous Xampp seul.
Avec ma configuration récupérée dans votre site, sous Eclipse 3.2, un exécutable de débogage ( Run > Debug > PHP Executable) est lancée et fait apparaître une fenêtre « débogage » qui est resté planter. Malgré le point d’arrêt, je ne peux pas faire « avancer d’un pas avec ou sans entrée » ou « exéxuter jusqu’à l’instruction de retour » (les icônes sont inactifs).
Malgré vos conseils, je me retrouve sur un autre problème car je ne peux même pas débuguer, alors qu’avant je pouvais débuguer (avec Php Debug) et je me suis confronté seulement aux problèmes de fonctions MySQL (de même Oracle) : « Call to undefined function mysql_connect() ».
Pourriez-vous m’aider ? Merci encore
rami Replied
Wednesday, August 16. 2006 at 20:48 (Reply)
Le problème vient du fait que l'on utilise le client php et non php est mode module d'apache. Donc celui-ci ne charge pas les extensions indiquées dans php.ini.
La seule solution rapide est de charger dynamiquement les dll pour le debuggage:
$cnx = mysqli_connect('localhost','root','');
mysqli_select_db($cnx, 'mysql');
if($result = mysqli_query($cnx,'SELECT * FROM `user` '))
{
printf("Select a retourné %d lignes.\n", mysqli_num_rows($result));
mysqli_free_result($result);
}
edit :
Après quelques tests, il est en fait possible d'ajouter des extensions au binaire utilisé par le debugger. J'utilise le binaire php5 par défaut du debugger. Il faut modifier le fichier php.ini qui est au même endroit ainsi (pour mysql) :
extension=php_mysqli.dll
zend_extension_ts=ZendDebugger.dll
Ainsi, il n'est plus nécessaire d'ajouter dynamiquement des dll.
personne Says
Thursday, August 17. 2006 at 15:00 (Reply)
Grâce à vos bons conseils, j’ai pu débuguer sans problème dans les 2 solutions proposées (cas de MySql).
J’ai 2 questions :
1ère question :
Pour la première solution (charger dynamiquement les dll):
Mon phpinfo() indique extension_dir=C:\php5. Or je ne le possède pas. Je voudrais le passer en extension_dir=C:\Program Files\xampp\php\ext\.
Comment modifier ce chemin sous Eclipse. Existe-t-il un paramètre d’Eclipse à modifier ?
D’ailleurs, l’instuction “dl('C:\Program Files\xampp\php\ext\php_mysql.dll');” génère le message d’erreur suivant :
Unable to load dynamic library 'C:\php5\C:\Program Files\xampp\php\ext\php_mysql.dll' - Le module spécifié est introuvable.
Deuxième Solution : certes c’est la meilleure solution.
2ème question : mon code Php contient les balises HTML et PHP. Au début de débug, j’ai un combo-box (). Je l’ai visualisé et il est vide pour l’instant. J’exécute jusqu’au point d’arrêt pour le remplissage des listes des noms dans ce combo-box. "Browser Output" d'Eclipse convertit le schéma de combo-box en code Html (je crois). Là, il est impossible de choisir un nom dans ce combo-box pour passer la suite du point d’arrêt du débug.
Il reste ce dernier problème à élucider. Merci beaucoup
joannes de koster Says
Tuesday, October 17. 2006 at 00:19 (Link) (Reply)
Personellement je fonctionne avec WAMP en local comme environnement de développement. Les dernières versions comprennent xdebug.
J'ai donc essayé de faire fonctionner xdebug avec phpeclipse mais jen'ai pas trouvé d'indications pour le paramétrage / fonctionnement.
Avant de continuer, j'aurai aimé avoir votre avis.
rami Replied
Thursday, October 19. 2006 at 19:06 (Reply)
Pour utiliser Xdebug avec phpeclipse, il faut re-construire le plugin avec ant grâce aux sources sous cvs.
Un article explique cela sur le wiki de phpeclipse :
http://www.plog4u.org/index.php/Developing_PHPeclipse:Developing_Process
Ce n'est pas très simple, j'ai peiné à le faire fonctionner mais cela reste tout de même faissable avec un peu de temps.
Je suis personnelement fan de Xdebug car c'est plus qu'un debuggueur. Il est possible de profiler le code, voir les goulots d'étranglements.
did1979 Says
Thursday, January 4. 2007 at 09:51 (Reply)
Je ne parviens pas à utiliser le debugger pour les PHP WEB Pages dans eclipse. La page spécifiée dans la config de ma php web page est bien lancée dans le browser, mais eclipse ne s'arrete aps à mes breakpoint.
J'ai un peu tout essayé, sous windows et sous linux.
Vous n'utiliser le debugger que dans le cas d'un PHP Script. avez vous essayé le debug de PHP Web page ?
avez vous une idée ?
merci