Du PHP dans Visual Studio: est-ce vraiment possible ?

Présentation

Depuis plusieurs mois maintenant je suis amené à travailler sur deux languages différents : le C# (.NET) et le PHP 🙁 .

Le problème c'est que je suis "Full Microsoft" et j'adore mon EDI "Microsoft Visual Studio 2017" !!! C'est vrai, je peux utiliser VS Code, mais moins pratique quand même.

J'ai donc cherché pour savoir si je pouvais faire du PHP dans mon environnement préféré. Et j'ai trouvé un plugin (payant je l'avoue) mais qui vaut le détour: "PHP Tools for Visual Studio" !

Je vais vous présenter ce plugin rapidement et vous montrer comment l'utiliser.

Prérequis

Premièrement, il vous faut une version de PHP installée et configurée pour utiliser XDebug. Si vous ne savez pas faire, aucun problème, "PHP Tools for Visual Studio" vous assistera pour installer une version avec IIS Express. Toutefois vous n'aurez pas beaucoup de choix. Vérifier votre configuration avec la fonction :

phpinfo();

Enfin, pour faire du PHP dans Visual Studio, il nous faut le module "PHP Tools for Visual Studio". Rendez-vous donc sur le site du fournisseur (https://www.devsense.com/) et télécharger-le. Assurez-vous de télécharger le module pour la bonne version de Visual Studio (disponible pour Visual Studio 2010, 2012, 2015 et 2017).  Procédez à son installation. La version d'essaie est limité à 30 jours.

 

Passons maintenant à la configuration d'un projet PHP.

Création du projet

PHP Tools nous propose 4 façons de créer nos projets.

  • En utilisant des fichiers déjà existants
  • En créant un projet vide
  • En créant un projet vide qui sera déployé sur IIS ou Azure
  • En créant un projet Console

Partons du principe que nous avons déjà des fichiers (css, js et PHP). Nous allons donc créer un projet avec des fichiers déjà existants. (sélection du premier élément de la liste).

Donnons le nom de ProjectPHPTest à notre projet, sélectionnons un repertoire de creation et cliquons sur le bouton OK.

Dans la fenêtre suivante, sélectionnez le repertoire ou vous avez dejà des fichiers que vous souhaitez inclure à ce projet, puis cliquez sur Finish.

Votre projet est créé et vous retrouvez dans l'explorateur de solution tous vos fichiers (Oh !!!).

On suppose que votre environnement de développement est configuré pour interpréter le PHP, soit sur Apache ou sur IIS. Assurez-vous donc que vos pages s'affichent correctement dans votre navigateur et que celle-ci soient bien interprétées.

Passons maintenant à la configuration pour déboguer dans Visual Studio.

Le débogage

Partons du principe que votre environnement est "Full Microsoft". Vous utilisez donc IIS pour interpréter PHP et son module "PHP Manager".

Dans l'explorateur de solution, faite un click droit sur le projet fraichement créé et cliquez sur "Propriétés".

L'onglet "Application" vous permet de paramétrer les paramètres généraux de l'application. Par exemple de spécifier le niveau minimum de PHP à utiliser.

L'onglet "Server" est l'onglet de configuration principal pour déboguer notre application.

  • Serveur : Sélectionnez "Built-in Web Server"
  • Runtime : C'est la version de PHP utilisé pour le debogage de votre application. Elle doit être référencée dans IIS en utilisant "php-cgi.exe".
  • Host name : Nom du serveur ou se trouve IIS bien entendu !
  • Specific port : Si le port d'écoute HTTP est different de 80

Mettez un point d'arrêt ou vous le souhaitez et démarrez l'application en mode débogage. Si tout est correctement configuré, Visual Studio intercepte votre point d'arrêt (Cf. ci-dessous).

Remarque :

  • L'url construite est alors de type : http://ServeurName:Port/?XDEBUG_SESSION_START=SessionNumber
  • Vous bénéficiez de l'IntelliSense natif de Visual Studio sur l'ensemble des objets PHP.

Conclusion

"PHP Tools for Visual Studio" est un excellent outil, performant et rapide pour déboguer dans Visual Studio. Il fait gagner du temps aux développeurs .NET ayant l'habitude de cet environnement. Le point négatif reste encore PHP et sa configuration XDebug. En effet, pour Windows 10 X64 et selon la version de PHP utilisée, la bonne configuration est difficile à trouver. Enfin, dommage que ce module soit payant !

Bon dev à tous !

Un commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *