Jan 162014
 

Le Framework Symfony et l’environnement Eclipse

Cet article est une mise à jour de l’article du 30/08/2013 sur l’installation du plugin de Symfony pour Eclipse

Si vous êtes arrivés sur cette page, je dois en déduire que vous savez ce qu’est un framework et plus spécifiquement Symfony. Pour les autres, je ferais un article plus exhaustif si le temps me le permet mais pour faire bref, Symfony est un framework (soit un ensemble d’outil de développements) qui vous permet de développer plus aisément un site web en php. Vous pourrez en savoir plus sur le site officiel: http://symfony.com/

Dans sa version 2.x, je trouve que Symfony est vraiment très puissant et vous permettra (une fois maîtrisé) de développer des sites très complets. Il est doté d’outils de debug et vous permettra de coder proprement en php. Il peut être l’unique outil dont vous avez besoin pour développer votre site web. Il ne vous manque alors que le bloc note pour éditer vos fichiers (en suivant les codes de Symfony bien sur…)

Si vous avez lu la phrase précédente sans sourciller, c’est que vous n’avez jamais été confronté au développement d’un site web complexe, ou encore que vous n’avez pas froid aux yeux. Je défie en effet quiconque de développer un site en php avec la seule aide du bloc note… (Notepad++ déjà, serait un mieux.)
Pour gagner du temps et surtout pour vous y retrouver dans votre développement, vous avez besoin d’un environnement de développement. Pour ma part, j’ai choisi Eclipse pour sa flexibilité et pour les différents plugins disponibles qui permettent notamment de le rendre tout a fait adapté pour Symfony 2.x.

Toutefois, et de par sa grande flexibilité, votre environnement Eclipse ne pourra pas fonctionner out of the box. Une configuration est donc nécessaire, c’est l’objet de cet article.

Prérequis pour Windows

Avant de vous lancer dans l’installation des plugins nécessaires pour Symfony, un bref rappel des prérequis est nécessaire. Je pars du principe que WampServer est déjà installé sur votre machine et fonctionnel. (Cela inclus donc apache et un executable php entre autres…)

Enfin, si cela n’est pas le cas, je vous invite à installer Git pour Windows que vous récupérerez à l’adresse suivante : http://msysgit.github.io/
Git est utilisé par composer pour cloner les vendors notamment dans symfony et il sera donc utile par la suite.

Installer Eclipse pour Symfony 2.x

Installation d’Eclipse

Tout d’abord, il vous faudra récupérer la dernière version d’Eclipse sur le site officiel: http://www.eclipse.org/downloads/ (pour ce tutoriel, je me suis basé sur Eclipse Kepler (4.3) en version 64 bits.)

Une fois récupéré, vous devez être en possession d’un fichier zip qu’il vous suffira de dé-zipper dans le dossier de votre choix. Lancer ensuite Eclipse (eclipse.exe) Si vous tombez sur l’erreur ci-dessous, l’environnement de développement Java (JDK) n’est pas installé sur votre machine. Il vous suffit de récupérer la dernière version à l’adresse suivante: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

Erreur Eclipse Java

Erreur JDK Java

Une fois le JDK installé (et si vous avez pensé à prendre la bonne version, 32 ou 64 bits selon la version d’Eclipse téléchargée…) Eclipse se lance:

Splashcreen Eclipse

Splashcreen Eclipse

Il vous est alors demandé de renseigner votre Workspace. Il s’agit tout simplement de votre Espace de travail ou en d’autre termes, le répertoire dans lequel vous aller travailler et donc placer tous les fichiers de votre site web. Vous pouvez donc choisir le répertoire de votre choix cochez la case si vous souhaitez en faire votre répertoire par défaut.
Vous arrivez alors sur la page d’accueil d’Eclipse.

Ecran accueil Eclipse

Ecran d’accueil Eclipse

Cliquez sur la flêche en haut à droite au dessus de workbench et vous arriverez alors dans l’espace de travail d’Eclipse (qui si vous ne connaissez pas Eclipse ne doit pas vous parler plus que cela…)

Espace travail Eclipse

Espace de travail Eclipse

Le but de cet article n’étant pas de présenter le fonctionnement d’Eclipse, je ne m’attarderais pas d’avantage sur les différents éléments visibles à l’écran. Un second post suivra sur l’utilisation d’Eclipse avec Symfony ou je détaillerais le layout d’Eclipse et les différentes vues et fenêtres.

Installation des plugins pour Symfony, Eclipse Marketplace

Depuis les dernières versions d’Eclipse, un outil très pratique a vu le jour, Eclipse Marketplace. Il répertorie les différents plugins qui ont été (ou non) validés par la communauté et vous permettra donc d’ajouter très facilement de nouvelles fonctionnalités.

Malheureusent, l’installation de symfony n’est plus actuellement disponible depuis le market place suite à un changement de dépot. Comme la dernière version stable n’a pas encore été publiée, il est nécessaire de passer par les dépôts pour réaliser l’installation. Certains plugins seraient installable via le Marketplace mais pour plus de simplicité, nous installerons tous les plugins nécessaires via les dépôts.

Ajout du dépôt et installation des plugins

Dans le menu help choisissez cette fois Install New Software… Vous arrivez sur la page suivante:

Eclipse New Software

Page d’installation New Software

Nous allons donc ajouter la source correspondant au dépôt du PDT Extension group. Cliquez sur Add… en haut à droite. Ajouter la source http://p2-dev.pdt-extensions.org/ vous pouvez l’appelez comme bon vous semble (‘PDT Extension Group’ par exemple.)

Une fois cette source ajoutée, vous verrez un apparaître un certain nombre de plugin. Recherchez et sélectionnez Symfony Feature.

Installation Symfony Feature

Installation Symfony Feature

En cliquant sur Next, vous arrivez sur une page récapitulative. Vous verrez qu’Eclipse sélectionne automatiquement les dépendances. Vous devriez voir apparaitre notamment PHP Development Tools, Doctrine Feature, Twig Editor Feature.

Validez l’installation et attendez la fin de celle-ci. Il est plus que probable que vous obteniez un avertissement vous informant que vous installez un logiciel non signé, acceptez et continuez l’installation. Il ne vous reste plus qu’à redémarrez Eclipse en fin d’installation.

Plugins additionnels

Je vous conseille fortement d’installer directement le plugin YEdit (vous le trouverez dans le même dépôt que précédemment.) Il vous servira notamment à éditer avec plus de facilité les fichier Yaml.

A titre d’information, voici également une courte liste de différents plugins qui peuvent vous intéresser.

  • Markdown Editor (pour prévisualiser et naviguer dans des fichiers texte utilisant le langage Markdown)
  • Eclipse Color Theme (pour modifier la coloration de votre code et/ou de l’interface d’Eclipse)
  • Eclipse Chrome Theme (si vous souhaitez modifier l’apparence d’Eclipse)

N’hésitez pas à me faire part d’autres plugins que vous utilisez. Je mettrais à jour cette liste si nécessaire.

Finalisation de l’installation, réglages

Pour pouvoir profiter pleinement du plugin, il est nécessaire d’avoir configuré au moins un executable php. Rendez vous pour cela dans le menu Window -> Preferences puis dans PHP -> PHP Executables
Cliquez sur Add… pour ajouter un executable nommez le en fonction de votre version de php (Php 5.4 par exemple) et allez chercher l’executable dans le répertoire ou vous avez installé wamp. (par exemple : C:\Program Files\wamp\bin\php\php5.4.12)

Sélectionnez XDevug (Symfony) comme pour PHP debugger . Si celui ci n’est pas activé dans votre php.ini, un message de Symfony vous le fera savoir. modifiez le fichier en conséquence le cas échéant. (Directive xdebug.remote_enable=1)

Validez la création puis enregistrez vos réglages. Il vous reste alors à vous rendre dans le sous menu PHP -> PHP Executables -> Execution Environnements puis à sélectionner l’exécutable choisi en fonction de la version. (Si vous n’utilisez qu’une version de php, telle que la 5.4, ne cochez pas d’interpréteur pour les autres versions proposées par Eclipse…)

Remarque: En cas d’erreur lors de la création de votre projet Symfony sur la présence d’un exécutable php, supprimez celui précédemment créé et ajouter le à nouveau en utilisant la fonction ‘search’. Pour une raison que j’ignore, cela fonctionne mieux à priori.

Créer votre premier projet Symfony

A présent, vous disposez d’Eclipse avec un environnement prêt pour développer à l’aide du framework Symfony. Si vous n’utilisez Eclipse (ou tout du moins cette version) que pour Symfony, ce que je conseille, vous pouvez également effectuer dès à présent une modification dans les préférences du plugin YEdit.
Menu Window -> Preferences -> YEdit sélectionner la case à cocher Symfony Compatibility Mode. (Il s’agit de préciser au plugin YEdit que l’on va travailler sur des projets Symfony dont la syntaxe peut différé parfois du langage Yaml standard.)

Création d’un projet Symfony

Entrons enfin dans le vif du sujet, la création de notre projet Symfony: En effectuant un clic droit dans la fenêtre de gauche (package explorer) ou en passant par le menu File -> New -> Project vous lancez le gestionnaire de création d’un nouveau projet. Bien sûr, vous verrez apparaître dans la liste des projets disponibles un dossier Symfony et un fichier Symfony Project.

Eclipse New Project

Eclipse Création d’un nouveau projet.

Sélectionnez celui-ci et dans la fenêtre suivante, nommez votre projet. Vous pouvez également créer celui-ci dans un répertoire différent du Workspace si vous le souhaiter. Enfin, vous remarquerez que vous avez le choix entre un grand nombre de projet Symfony 2.1.0 et 2.4.x Vous pouvez choisir celui qui vous convient le mieux. Pour ma part je choisirait la version 2.3.9 qui est la dernière version stable à ce jour.  Vous pouvez laisser les autres options telles quelles et cliquez sur Finish.

Eclipse New Symfony Project

Eclipse nouveau projet Symfony

La création du projet peut prendre un certain temps comme Eclipse va se charger de récupérer tous les fichiers nécessaires. Vous devriez ensuite voir apparaître votre projet à gauche dans l’explorer. Si l’installation s’est déroulée correctement, le dossier principal doit arborer une petite icône Symfony.

Vous devriez vous trouver avec un projet Symfony déjà fonctionnel. Le fichier composer.json devrait en principe être ouvert d’office. Je ne m’attarderait pas sur les détails de composer pour le moment mais si vous connaissez son fonctionnement, vous remarquerez que grâce aux icônes en haut à droite de la fenêtre principale, vous pouvez effectuer un composer.phar install ou encore update ou self-update
(Pour ceux d’entre vous qui ne jurent que par le composer.json traditionnel et ne comprennent pas pourquoi il n’y a pas que du simple texte dans votre fichier, comme cela m’est arrivé, n’oubliez pas de cliqué sur composer.json dans les onglets sous la fenêtre principale…)

Ajout de la console pour votre projet

Lorsque vous développez un site web avec Symfony, vous avez souvent recours à la console. Comme il n’est pas pratique (sous Windows notamment) de devoir à chaque fois ouvrir l’invite de commande, je vous propose une méthode qui vous permet de l’intégrer de façon efficace à Eclipse.

Nous utiliseront pour cela le menu Run -> External Tool, vous pouvez également cliquer directement sur l’icône correspondante External Tool (utiliser la flèche pour dérouler le menu) choisissez alors External Tools Configuration…
Vous arrivez dans une nouvelle fenêtre faites un clic droit sur Program et choisissez New. A droite de la fenêtre, vous pouvez alors personnaliser votre nouveau raccourci à commencer par son nom en haut (le plus simple est de lui donner le nom de votre projet comme nous allons créer un raccourci par projet.)
Dans l’onglet Main entrez le raccourci vers l’invite de commande dans location. (Par défaut:  C:\Windows\System32\cmd.exe dans windows.) et enfin dans working directory, entrez le raccourci vers votre répertoire Symfony. (Par exemple:  C:\User\Documents\www\SymfonyProject ) Vous pourriez choisir de placer le working directory à la racine (www) de votre site web mais je vous conseille plutôt de le placer dans le répertoire Symfony. De cette façon, vous pourrez entrer les commandes directement. De plus, vous pouvez tout à fait définir un raccourci de programme par projet et travailler ainsi simultanément sur différents projets.

Appliquez alors les changements et lancer la console en appuyant sur Run. Vous avez ainsi accès à une console fonctionnelle qui apparaît sous l’onglet principal d’Eclipse. Vous pourrez relancer simplement la console en cliquant sur son raccourci ultérieurement.

Conclusion

Votre projet est à présent fonctionnel et vous pouvez d’ores et déjà commencer à coder avec votre Framework comme vous aviez peut être déjà l’habitude de le faire avec un autre éditeur. Afin de ne pas surcharger cet article, je réaliserais un article complémentaire sur la première configuration et la prise en main de Symfony 2.
En attendant je vous redirige sur un tutoriel très bien fait sur Symfony disponible sur le Site du Zéro: http://www.siteduzero.com/informatique/tutoriels/developpez-votre-site-web-avec-le-framework-symfony2

N’hésitez pas à me faire part de vos différentes remarques et questions en commentaire. Je serais ravi de vous apportez des éléments de réponse complémentaire. Je mettrais à jour cet article dès que j’aurais écrit la suite sur la prise en main de Symfony 2.

  24 commentaires à “Installation Symfony 2 avec Eclipse”

  1. Merci pour ce tutoriel, sans ça, il n’est pas aisé de l’installer, il faut avouer….
    Cependant comme notre cher lecteur « Dju », j’ai droit à une erreur à la création d’un projet Symfony (“invalid Json : Unexpected token End Of File at position 0″.)
    J’ai donc suivi ton conseil, j’ai bien attendu que le projet soit crée par eclipse et j’ai redémarré…. et parfait ça marche.. C’est un peu bidouille comme technique mais bon, ça fonctionne. 🙂

  2. Tuto génial et commentaires enrichissant… Dommage que je ne l’ai pas trouvé plutot :))
    Il me reste un dernier point après cette journée a installer mon environnement de developpement, c’est que l’auto complétion ne fonctionne pas « complétement », c’est à dire que je récupère bien les fonctions et variables du php, par contre, je ne parviens pas à récupérer celles liées à symfony… Aurai je encore oublier un paramètre quelque part… Il y a des chances :(( Si vous avez une idée, je prends…
    Et merci encore pour ce travail clair…

  3. Bonjour,

    J’ai un gros problème après la génération de Symfony sachant que je suis sous Linux.
    voici l’erreur http://hpics.li/c16adb3

    Néanmoins si je lance la ligne suivante :
    php composer.phar create-project symfony/framework-standard-edition Symfony

    Cela me donne la création de symfony sans problème apparent.

    Un avis, une idée ?

    Merci bcp

    • Bonjour,
      L’erreur paraît plutôt claire : eclipse ne semble pas trouver votre installation de git. Avez vous bien vérifié s’il est installé sur votre système? Si c’est le cas, eclipse ne semble pas avoir les autorisations nécessaires ou ne dois pas trouver le path correspondant…

  4. Merci pour le tuto mais j’ai aussi un petit soucis. Mais a mon avis c’est que je doit être miro à un endroit lol…

    Tout c’est bien passé aucun message d’erreur donc au moment de créer un projet Symfony 2 je me retrouve avec un P de PHP sur le projet et non un S.

    De plus, je crée mon projet sur le répertoire courant de mon serveur wamp donc www
    et quand je vais voir dans l’adresse en localhost : je me retrouve avec un symphony successfully installed mais sans le bootsrap juste le HTML donc… En d’autre termes il n’arrive pas à la ligne 20 faire le require_once du bootsrap dans app_dev.php…

    Si une âme peut m’aider j’en serais très reconnaissant 😀

    • Bonjour et de rien pour le tuto.
      Effectivement, la nouvelle version du plugin ne met plus le logo Symfony ni un S mais bien le P de PHP sur les projets nouvellement créés.

      Concernant l’erreur dont vous parlez, je n’ai pas vraiment saisi le rapport avec le répertoire courant de votre serveur wamp. Si vous créez l’intégralité du projet dedans cela ne doit pas avoir d’incidence. Est-ce que l’arborescence de votre projet est complète?
      Vous devriez avoir à minima les dossiers suivants:
      www/votre_projet/app/
      www/votre_projet/bin/
      www/votre_projet/src/
      www/votre_projet/vendor
      www/votre_projet/web
      Et vous devriez avoir le fichier bootstrap.php.cache dans le dossier www/votre_projet/app/

      Vérifiez également qu’il ne s’agit pas d’un problème d’accès en lecture sur vos fichiers placés dans le répertoire www (si vous êtes sous windows et que le dossier est resté dans ProgramFiles, il peut s’agir d’un problème de droits…

      • Vouah merci de la rapidité de votre réponse 😉

        Pour le répertoire courant c’été juste pour être que ce que je faisais été correcte.

        Alors concernant, l’arborescence j’ai tout même le fameux bootstrap.php.cache qui me pose problème et l’ensemble des droits sont correctes (lecture et écriture).

        Bon je continue a chercher de mon coté et je vous tiens au courant si je trouve la réponse 😉

        En tout cas merci encore une fois

      • Avez vous essayé de mettre à jour votre projet? (Commande php composer.phar update ou si le plugin Symfony est correctement installé : ouvrez le fichier composer.json et cliquez sur l’icône en haut à droite de la fenêtre principale)
        Ceci devrait régénérer le fichier donc peut potentiellement corriger le problème si celui ci est corrompu.
        Sinon je suppose qu’il peut s’agir de paramètres de wamp mal configurés… Avez vous un autre projet Symfony fonctionnel?

  5. j’ai fait l’installation comme indique, mais mon probleme est que je n’arrive pas a creer de projet eclipse. Voila le message d’erreur

    Erreur. Pour plus de détails, consultez le journal des erreurs.
    loader constraint violation: when resolving method « org.apache.http.client.params.HttpClientParams.setRedirecting(Lorg/apache/http/params/HttpParams;Z)V » the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the current class, com/dubture/getcomposer/packages/AsyncDownloader, and the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for resolved class, org/apache/http/client/params/HttpClientParams, have different Class objects for the type rg/apache/http/params/HttpParams;Z)V used in the signature

    help me

    • Bonjour,
      Êtes vous parti d’une installation pré-existante d’Eclipse ou d’une installation neuve? Il semblerait que le problème que vous remontez puisse venir d’un problème de compatibilité entre différents plugins d’Eclipse.

      • c’est une installation neuve d’Eclipse, je l’ai telechargé sur le site d’ eclipse et decompressé, j’ai installé le PHP Development Tools,
        Config de l’OS:

        Ubuntu 13.1 64bit, corei5 10Go RAM

      • Excusez-moi, bonsoir,

        Aussi je voudrais ajouter que j’utilise eclipse pour mes developpements android = android-sdk installé, est ce que ce n’est pas un probleme de conflit au niveau des plugins, je suis beaucoup confus. Dans ma config j’ai alloué 3Go de memoire a eclipse puisque je l’utilise tout le temps et a fond,

        Cordialement

      • Je dois avouer que je n’arrive pas à reproduire le bug.
        J’utilise habituellement Eclipse sous windows mais je n’ai pas de problèmes avec Ubuntu 12.04
        Avez vous résolu le problème? Avez vous essayé sur une nouvelle installation d’Eclipse?

  6. Bonjour et merci pour ton tuto qui m’a bien servi.

    Par contre j’ai un problème quand je veux créer un projet symfony, au lieu de me proposer une liste des versions de symfony, j’ai « Loading versions ».

    J’ai beau laissé du temps à éclipse, rien à faire et j’ai ce problème sous différents OS (windows, debian).

    Mon problème vient finalement du proxy de la société.

    En partageant ma connexion téléphonique Data (et après une longue attente, merci le réseau SFR…), j’ai pu choisir une version de symfony.

    Si cela peut aider quelqu’un, sachez que composer peut avoir du mal avec les proxy

    • Bonjour, et de rien 😉
      Je n’ai jamais eu de problèmes de proxy mais j’avoue ne jamais avoir trop testé.
      Il est très probable que votre société bloque l’accès à certains sites et/ou protocoles…

  7. Bonjour,

    Aujourd’hui j’ai DL Eclipse Kleber 4.3. J’ai un WAMP démarré. Je vais dans le site manager : « http://p2-dev.pdt-extensions.org/ » et je télécharge Symfony. Tout se passe bien seulement j’ai la même erreur que certains lorsque je crée un nouveau projet Symfony

    « erreur du type « composer exited with an error, reason : installing Symfony-standard-edition/…./…. ».

    Si vous avez une idée de l’origine du problème?

    Merci par avance

    • Bonjour,
      Je n’ai pas souvenir avoir déjà vu cette erreur quelque part… L’erreur retournée s’arrête-t-elle la ou est-elle plus explicite?
      Avez vous bien installé Git sur windows? http://msysgit.github.io/ (Composer en a besoin pour télécharger les fichiers vendors.)

      N’hésitez pas à revenir sur le sujet avec plus de détails.
      Cordialement,

  8. Très bon tuto merci.
    Seul petit problème, après avoir suivi (correctement il me semble) toutes les étapes, le logo Symfony n’apparait pas sur mon projet aors que c’est bel et bien un projet Symfony (j’ai fait fichier->nouveau projet Symfony).
    Lors de la création de mon projet, une erreur avec compozer survient.
    Une fois le projet créé, une erreur est affichée : « invalid Json : Unexpected token End Of File at position 0 ».

    Quelqu’un saurait-il quelle peut être l’erreur et comment y remédier?

    • Bonjour.
      Essaie de simplement redémarrer Eclipse (attends que la création du projet soit VRAIMENT finie).
      Profites-en pour vider le dossier app/cache si tu as un warning.

  9. Merci pour cet excellent tutoriel. Il m’a été très utile pour la partie console (quel soulagement de l’avoir directement intégrée dans Eclipse).
    Pour ma part j’avais opté pour Juno (http://www.eclipse.org/downloads/packages/release/juno/sr2 , prendre la classique) pour respecter les indications du site du plugin Symfony (pas de problème d’installation de PDT avec cette version, ni de souci avec le plugin).

  10. Le tutoriel est intéressant mais il est impossible d’installer symfony à partir du MarketPlace car il pointe sur un repository qui n’existe plus… Par ailleurs la version du plugin ayant changée on a plus du tout les mêmes possibilités de création de projet : je me demande même si le plugin fonctionne vraiment dans cette version

    • Effectivement, le MarketPlace ne semble pas avoir été mis à jour.
      Il semble qu’il faille donc installer les plugins à partir des repositories à présent et avec l’ancienne méthode. (Menu help puis Install New Software…
      Le nouveau repository est http://p2-dev.pdt-extensions.org/ (merci à karlycarla pour le lien.)

      Je mettrais à jour l’article sous peu pour expliciter la procédure. (Il faut installer Php Development Tools, Symfony, Twig et Yedit à minima.)

      Concernant les fonctionnalités du plugins, j’avoue que je m’en sers surtout pour les capacité d’auto-complétion et de vérifications d’erreurs. Mais il est toujours possible de créer un projet en version 2.1.x et ensuite la mise à jour du projet se fait simplement grâce à Composer.

  11. super merci! Pour moi l’install des plug-in a dû se faire via « newsoftware installation » car le lien du repo « pulse00 » de github est deprecated, donc pour ceux que ca concerne, voici le nouveau repo :
    « http://p2-dev.pdt-extensions.org/ »,
    info prise sur:
    « https://github.com/pulse00/p2/commit/44b871028642346bf1c12ad0db52512d8d34f157 »

    • Merci pour le Feedback. Ravi que ce simple tutoriel soit utile à d’autres que moi.
      Toutefois, le repository « pulse00 » n’est pas utile en passant par le Marketplace si je ne m’abuse… Même si l’installation marche très bien également de cette façon.
      Cordialement.

Désolé, les commentaire sont désactivés pour l'instant.