mardi 23 novembre 2010

Création d'un projet symfony avec netbeans

Nous allons dans ce billet tout simplement créer un nouveau projet symfony avec netbeans. Ce billet fait suite à la configuration de cet IDE vu précédemment.

La création d'un nouveau projet se déroule au travers d'un assistant qui de lance par le menu "File-> New Project"




Ensuite, la deuxième étape permet de donner un nom au projet : "ProjetTest" dans notre cas et permet de choisir le répertoire dans lequel le projet va être stocké ainsi que la version de php utilisé.




La troisième étape et assez importante puisque c'est ici que l'on va définir l'url à laquelle le projet sera accessible:



Nous voyons ici une url un peu particulière: "http://projettest.mamachine.local/". C'est ceci que nous devrons configurer dans notre virtual host de manière à accéder au projet dans notre navigateur.

L'étape d'après va nous permettre de choisir le framework symfony et de créer une application au sens symfony du terme, dans notre cas "frontend".



Le bouton finish lance la création du projet.
On se retrouve alors avec une arborescence correspondant au projet dans l'explorateur de projet de netbeans, avec notre fameuse application "frontend".



Dans le menu contextuel sur notre projet, nous pouvons voir une entrée symfony spécifique avec plusieurs options. Ce sont les mêmes options que nous avons configurée en raccourci clavier.

Maintenant, la configuration du virtual host correspondant. Il faut créer un fichier pour notre site dans /etc/apache2/sites-available/.
sudo vi /etc/apache2/sites-available/projettest

Voici le contenu a adapter en fonction de vos chemins locaux, c'est à dire l'emplacement dans lequel vous avez installé le framework symfony et l'emplacement du projet ProjetTest tel que défini dans netbeans.


On sauvegarde et on informe apache que l'on souhaite mettre en ligne ce superbe site:

sudo a2ensite projettest
Enabling site projettest.
Run '/etc/init.d/apache2 reload' to activate new configuration!

puis

service apache2 reload

Il reste à définir un alias dans notre hosts local pour le nom de domaine mamachine.local

sudo vi /etc/hosts
127.0.0.1 projettest.mamachine.local

On sauvegarde et on vérifie:
ping projettest.mamachine.local
PING projettest.mamachine.local (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=1 ttl=64 time=0.031 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=2 ttl=64 time=0.025 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=3 ttl=64 time=0.026 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_req=4 ttl=64 time=0.036 ms

Maintenant le test du site dans un navigateur:






Super ca marche!!!

La suite au prochain épisode...

dimanche 21 novembre 2010

Cases à cocher des frameworks php innaccessibles dans netbeans 6.9

Sur ubuntu (pour ma part 10.10) lors de la création d'un nouveau projet, on a la possibilité de choisir le framework qui va être utilisé et ainsi de générer le squelette de l'application lors de sa création.




Ceci se passe à l'étape 4 de l'assistant de création de projet.

Il arrive que les cases à cocher ne soit pas active sur cet assistant. J'ai deux machines toutes les deux sur ubuntu 10.10 et le problème ne se présente que sur une des deux. Après avoir recherché pas mal de temps, j'ai fini par trouver une solution à l'adresse suivante:

http://netbeans.org/bugzilla/show_bug.cgi?id=191959

Je vous donne la marche à suivre en français dans le texte:

Le problème provient de l'utilisation des paquets JAVA par défaut de Ubuntu (openjdk). Il convient d'installer les paquets de sun pour résoudre le problème. Ils sont inclus dans la distribution Ubuntu 10.10 si j'en crois certaines infos trouvées sur le net, à condition d'activer le bon dépôt dans les "Sources de logiciels." et qui devrait s'appeler "Partenaires de Canonical".




Pour ma part, il n'était pas présent et j'ai du le rajouter. Si il est présent, il suffit de le cocher et de ne pas faire l'étape qui suit:

sudo add-apt-repository deb http://archive.canonical.com  maverick partner

Ensuite, reste à mettre à jour les listes de paquets et installer ce qu'il manque:

sudo apt-get update
 sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts


Maintenant, il y a deux possibilités, soit on choisit de remplacer la version de Java par défaut de tout le système, soit simplement celle de Netbeans. J'ai fait le choix de remplacer au niveau du système. Il faut rechercher le lien symbolique qui doit être dans /usr/lib/jvm et qui s'appelle default-java. Par défaut il pointe sur "java-6-openjdk" et on va le faire pointer sur "java-6-sun".

Dans un terminal:

cd /usr/lib/jvm
sudo rm default-java
sudo ln -s java-6-sun default-java

Le résultat:

Voilà, il faut à présent (re)lancer Netbeans pour profiter de cette fonctionnalité bien pratique lors de la création de projet.



samedi 20 novembre 2010

Mise en place du débogage php


Attention, l'article qui suit est réalisée sur un système LINUX (Ubuntu) et devra être adapté selon la configuration du système.


Il va falloir procéder en deux temps.

  1. Installer les librairies sur le systèmes.
  2. Modifier le paramétrage de php pour intégrer le débogage

Installation de xdebug:

Ouvrir un terminal et exécuter la commande suivante:

sudo pecl install xdebug


A la fin du téléchargement, le module va être compilé puis les dernières lignes de la sortie devrait ressemblées à ca:

Build process completed successfully
Installing '/usr/lib/php5/20090626/xdebug.so'
install ok: channel://pecl.php.net/xdebug-2.1.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=xdebug.so" to php.ini

La première partie est terminée et nous apprenons que la librairie se trouve dans  /usr/lib/php5/20090626/xdebug.so

Pour la configuration de php, pour la partie apache, il faut éditer le fichier
/etc/php5/apache2/php.ini

Nous allons rajouter tout à la fin du fichier les lignes suivantes:

zend_extension=/usr/lib/php5/20090626/xdebug.so
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000

Il reste maintenant à redémarrer apache pour lui faire prendre en compte les modifications apportées.

sudo service apache2 reload

La réponse du système devrait être:

* Reloading web server config apache2         [ OK ]

Pour le test du débogueur, notamment grâce à son intégration dans netbeans, cela fera l'objet d'un autre billet.



Configuration de netbeans 6.9 pour symfony

Après avoir téléchargé et installé Netbeans sur le poste de travail, au premier lancement, on va commencer par configurer quelques paramètres facilitant l’utilisation.

Ca se passe dans le menu Tools -> Options




Dans la première ligne, préciser le chemin vers l’exécutable de php. Dans mon cas, il s’agit de php sur linux. J’en profite pour attirer l’attention sur le fait que Symfony2 utilisera php 5.3. Il est donc intéressant de préparer le terrain et de déjà travailler sur cette version.




Nous parlerons aussi de la configuration de php pour permettre le débogage des applications. On va laisser les paramètres par défaut pour le moment.

Pour symfony, l’installation se fera en récupérant les sources grâce à SVN. Ceci n’est pas détaillé ici mais il faut noter que symfony est installé en dehors de l’arborescence web accessible par un navigateur et partagé entre les différentes applications sur la machine.

Il faut indiquer à Netbeans où se trouve les sources de manière à avoir une  analyse des classes et du coup l’auto complétion.




Attention, ceci est valable uniquement dans le cas où on va utiliser une seule version de symfony pour tous les projets. Dans le cas contraire, il convient de faire ce paramétrage projet par projet et non de manière global.

Dans l’onglet “symfony”, on va indiquer où se trouve le script de symfony:



On valide notre choix et on passe à la configuration de quelques raccourcis  spécifiques à symfony:



Ca se passe au même endroit dans la partie “Keymap”.

J’ai pris l’habitude d’utiliser Windows+C pour le vider le cache et Windows + R  pour lancer les commandes symfony:



Il reste un autre raccourci permettant de basculer des actions vers les vues:



J’ai choisi Windows + V

Libre à vous de choisir un raccourci différent.

Voilà pour la configuration propre à Netbeans.

A suivre, la création d’un projet symfony grâce a Netbeans et la configuration de  php pour le débogage.

Y-A-U-B

Yet Another Useless Blog


Allez, c'est parti!!!

 Je vais tenter d'utiliser cet espace comme une sorte de pense bête afin de recenser le résultat de mes pérégrinations.