2017-08-05 1 views
2

Est-ce que je peux exécuter le serveur Web Symfony à partir de PhpStorm? Je sais que je peux courir à partir de la ligne de commande:Comment exécuter le serveur Web Symfony à partir de PhpStorm

php app/console server:run --env=dev 

Je me demande s'il n'y a aucune façon comment configurer PhpStorm pour le faire pour moi.

+2

Peu d'options possibles: 1) Fonctionnalité [Outils externes] (https://confluence.jetbrains.com/display/PhpStorm/Running+External+Tools+in+PhpStorm) 2) Exécuter/Déboguer la configuration de "PHP Le type de script peut également fonctionner. Peut-être existe-t-il d'autres moyens (par exemple, exécuter par npm/gulp/grunt/tâche de phing ou similaire) ... Je ne suis pas un utilisateur de Symfony + je préfère utiliser le serveur web "approprié" (Apache/nginx/IIS) sur le serveur de PHP ne peut donc pas penser à d'autres moyens en ce moment. – LazyOne

+0

Ce serait génial, si je pouvais même mettre des points de rupture dans mon code. –

+0

Vous pouvez également créer un alias à l'aide de l'outil d'intégration d'outils de ligne de commande pour exécuter rapidement une telle commande. Autre que cela (dans le cas où vous ne l'avez pas encore vu): https://confluence.jetbrains.com/display/PhpStorm/Symfony+Development+using+PhpStorm – LazyOne

Répondre

7
  • Cliquez Run -> Edit Configurations
  • Dans la boîte de dialogue Cliquez + (ajouter)
  • Sélectionnez PHP Script de la liste déroulante
  • Dans le champ Nom de type Symfony Web-Server
  • Dans le champ Script mis le chemin d'accès votre bin/console par exemple: /path/to/symfony/bin/console
  • éventuellement décocher Activate Tool Window à pré l'évacuer de sauter quand a commencé
  • Dans le champ des arguments de type server:run
  • Cliquez sur OK pour enregistrer et fermer la boîte de dialogue

Symfony Web-Server Script

Cela vous donnera une option Run Symfony Web-Server et Debug Symfony Web-Server à sélectionner. Pour déboguer le serveur en cours d'exécution, vous devez indiquer à PHPStorm d'écouter les connexions de débogage avant d'exécuter le script du serveur. Pour configurer le débogage dans votre Settings -> Languages & Frameworks -> PHP -> Servers assurez-vous que 127.0.0.1:8000 a été créé, désactivez Path Mapping et Xdebug est défini comme débogueur. Désactivez éventuellement l'arrêt à la première ligne dans les paramètres Debug -> XDebug.

PHP Server Settings

Maintenant, vous pouvez démarrer le serveur en le sélectionnant dans votre chute Run de configuration vers le bas, et en cliquant sur le bouton Lecture. Assurez-vous de dire à PHPStorm d'écouter les connexions de débogage en premier.

Debug bar

ou en cliquant sur Run -> Symfony Web-Server.

Ajoutez des points d'arrêt, puis lancez votre navigateur sur une route affectée par les points d'arrêt et PHPStorm devrait capturer la session de débogage et se rompre comme vous le souhaitez.

debug output

Si le débogage échoue au premier, à proximité de tous les services de PHPStorm en cours d'exécution, et essayez d'exécuter le Debug Symfony Web-Server (veiller à ce que PHPStorm écoute pour les connexions de débogage), puis relancer votre navigateur. Pour une raison quelconque, Xdebug peut ne pas s'initialiser autrement, mais ce comportement est sporadique et difficile à reproduire de manière cohérente. Après son initialisation, vous pouvez exécuter le serveur Web non-debug pendant que l'écoute est activée, et cela semble fonctionner correctement.

Note spéciale, l'exécution du Debug Symfony Web-Server ne surveillera le script bin/console. Cela est dû au fait que le processus php du serveur Symfony est forké et que la session de débogage surveille le processus parent .Vous devez donc indiquer à PHPStorm d'écouter les connexions de débogage lors du débogage du serveur Web.

+0

En note secondaire, je vous recommande fortement de configurer Docker ou Vagrant avec la distribution de votre OS et la saveur du serveur web (Apache, NginX, IIS). Comme c'est le moyen le plus cohérent de répliquer votre environnement de production et de tester sur votre système local dans un environnement similaire avant le déploiement. – fyrye