À l'heure actuelle, nous avons tous appris à aimer Vagrant et à la flexibilité du développement qu'il offre. Quelle que soit la plate-forme, vous pouvez facilement avoir un environnement de développement opérationnel en un rien de temps non seulement stable, mais aussi identique à tous les égards à l'environnement que vos collègues, mentors ou mentorés utilisent. Mais comme les applications que nous développons résident dans une machine virtuelle, elles sont un peu difficiles à déboguer avec XDebug qui est, par défaut, réglé pour LocalHost.
xdebug est une extension PHP qui vous permet de déboguer et de profiler votre code, afficher des traces de pile détaillées et lisibles lorsque des erreurs se produisent, et bien plus encore. Pour une procédure détaillée, voir le post de Shameer. Si vous n'êtes pas familier, vous feriez bien de l'installer d'abord en suivant les procédures ci-dessous, puis reportez-vous à la publication liée ci-dessus pour une ventilation de tout ce que Xdebug peut faire pour vous et vos applications.
Dans ce didacticiel, nous allons configurer XDebug avec phpstorm pour les applications PHP hébergées Vagrant.
Pour préparer l'environnement, veuillez installer et démarrer la propriété familiale.
Une fois qu'il est démarré, vagabonder SSH et installer une échantillon d'application Laravel. Vous pouvez le faire en exécutant:
composer create-project laravel/laravel Laravel --prefer-dist
Lorsque vous obtenez l'écran de salutation Laravel, vous êtes prêt à y aller.
Cette étape peut être ignorée. Homestead est livré avec XDebug installé et activé. Vous pouvez le voir en regardant phpinfo () après avoir démarré Homestead:
ou en vérifiant les dossiers conf.f.d de PHP FPM et PHP CLI:
ls /etc/php5/fpm/conf.d ls /etc/php5/cli/conf.d
Si vous voyez xdebug.ini là-dedans, il est chargé. Si vous utilisez une autre boîte Vagrant à la place et que XDebug n'est pas présent, reportez-vous à la publication de Shameer pour les instructions d'installation.
Pour permettre à XDebug d'être utilisé à distance, nous devons modifier le fichier INI et lui donner quelques paramètres qui sont désactivés par défaut. Le fichier xdebug.ini par défaut de Homestead (trouvé dans / etc / php5 / mods-disponible) ne contient à l'origine que la directive qui indique à PHP de l'activer, mais rien d'autre:
composer create-project laravel/laravel Laravel --prefer-dist
Sous cette ligne, ajoutez les options suivantes:
ls /etc/php5/fpm/conf.d ls /etc/php5/cli/conf.d
Fermez le fichier et redémarrez PHP-FPM: SUDO Service PHP5-FPM Redémarrer. C'est tout ce que nous devons configurer à la fin de Xdebug.
phpstorm a également besoin d'un peu de configuration. Tout d'abord, utilisez-le pour ouvrir le répertoire de l'application Laravel que nous avons créée à l'étape 1:
Ensuite, accédez aux paramètres du projet et sous PHP -> Les serveurs en ajoutent un nouveau. Donnez-lui le port 8000, le nom de votre choix et sous l'hôte, mettez le nom de l'hôte virtuel de votre site (par défaut: homestead.app). Ensuite, utilisez des mappages de chemin pour cartographier les chemins de main afin que l'emplacement de votre base de code sur la machine hôte correspond à l'emplacement de la machine virtuelle. Faites de même pour le sous-dossier public. Fondamentalement, transplantez les dossiers bloqués de Homestead.yaml à cette fenêtre. Suivez mon exemple:
Pour exécuter le débogueur sur une application, nous devons créer un environnement de débogage. Entrez dans CUN -> Modifier les configurations. Là, créez une nouvelle configuration pour «Application Web PHP»:
Appliquez les nouveaux paramètres et fermez la configuration.
C'est tout ce qu'il y a à le configurer. Voyons si cela fonctionne comme prévu.
Dans App / Routes.php, modifiez la fermeture de la route domestique afin qu'il ressemble au code ci-dessous:
zend_extension=xdebug.so
Ensuite, mettez un point d'arrêt à côté de chaque ligne de fermeture qui fait quelque chose, comme ainsi:
testons ces points d'arrêt. Si vous avez l'application ouverte dans votre navigateur, fermez cet onglet maintenant, sinon PHPStorm ne pourra pas le redémarrer. Ensuite, allez exécuter -> débogage et exécutez votre configuration de débogage prédéfinie. Un nouvel onglet doit être lancé et vous renvoyer immédiatement à PHPStorm avec une sortie similaire à celle-ci:
La trame gauche répertorie le StackTrace - les fichiers que la demande a déjà subi - et s'arrête sur Routes.php, notre fichier. Vous remarquerez dans le bon panneau que seuls les superglobaux sont déclarés - aucune autre variable n'est présente pour le moment. Cliquer sur le bouton de CV passe au point d'arrêt suivant et produit la sortie suivante:
Remarquez notre variable $ une variable est là maintenant. Notez également que vous pouvez l'étendre pour voir ce qu'il contient. Cliquez sur le bouton de CV produit une fois de plus une sortie légèrement différente:
Notre array $ a un élément de moins en raison de l'opération Array_Pop que nous avons effectuée. Cela prouve que nos points d'arrêt fonctionnent comme prévu, et XDebug a été mis en place avec succès.
Malgré les impressions initiales, XDebug est très facile à installer pour une utilisation via Vagrant lorsque l'on sait ce qui doit être fait. Ces instructions sont facilement applicables à l'intégration de XDebug dans tout autre IDE, alors n'hésitez pas à les adapter comme vous le voyez - seules les sections phpstorm doivent probablement changer.
déboguez-vous à travers la couche VM? Utilisez-vous d'autres approches? Avez-vous des problèmes que nous avons négligés de mentionner? Faites-nous savoir!
Pour installer XDebug sur phpstorm avec Vagrant, vous devez suivre une série d'étapes. Tout d'abord, vous devez installer Vagrant et VirtualBox. Après cela, vous devez installer PHPSTorm et le configurer pour utiliser xdebug. Vous devez également configurer Xdebug dans votre fichier php.ini. Une fois que vous avez fait tout cela, vous pouvez commencer à déboguer votre code PHP avec xdebug dans phpstorm.
xdebug est une extension PHP qui fournit un débogage et capacités de profilage. Il vous permet de parcourir votre code, d'afficher les valeurs des variables et de piler les traces. Cela facilite la compréhension du fonctionnement de votre code et d'identifier les erreurs ou les inefficacités. XDebug est un outil essentiel pour tout développeur PHP car il améliore considérablement le processus de débogage.
Le menu Paramètres et sélectionnez «Langues et Frameworks», puis «PHP», puis «débogage». Ici, vous pouvez définir le port de débogage et activer l'option «Écouter les connexions de débogage PHP». Vous devez également configurer l'interprète PHP pour utiliser xdebug.
Pour configurer Xdebug dans votre fichier php.ini, vous devez ajouter plusieurs lignes de code. Il s'agit notamment de spécifier le chemin d'accès à l'extension XDebug, de définir les options Remote_enable et Remote_Autostart sur 1 et spécifier le Remote_host et Remote_port. Le code exact que vous devez ajouter dépendra de votre configuration spécifique.
Une erreur «connexion refusée» signifie généralement Ce xdebug essaie de se connecter à un port qui n'est pas ouvert ou qui est bloqué par un pare-feu. Vous devez vous assurer que le port spécifié dans votre configuration XDEBUG est ouvert et que tous les pare-feu sont configurés pour permettre des connexions à ce port.
Pour utiliser XDebug pour déboguer votre code PHP, vous devez démarrer une session de débogage dans PHPStorm. Vous pouvez le faire en cliquant sur le bouton «Début d'écoute pour PHP Debug Connections». Ensuite, vous devez définir des points d'arrêt dans votre code où vous souhaitez que l'exécution s'arrête. Lorsque vous exécutez votre code, l'exécution s'arrêtera à ces points d'arrêt, vous permettant d'inspecter les valeurs des variables et la pile d'appels.
Oui , Xdebug peut être utilisé avec une variété d'ides, pas seulement le phpstorm. Cependant, le processus d'installation et de configuration de xdebug peut varier en fonction de l'IDE que vous utilisez.
Si xdebug ne s'arrête pas aux points d'arrêt, il pourrait être dû à plusieurs raisons. Une possibilité est que le mappage de chemin dans votre configuration PHPSTORM est incorrect. Une autre possibilité est que l'extension xdebug n'est pas correctement installée ou configurée.
Pour installer XDebug sur un serveur distant, vous devez suivre la même chose étapes comme pour une installation locale, mais avec quelques étapes supplémentaires. Vous devez vous assurer que l'extension xdebug est installée sur le serveur et que le fichier php.ini du serveur est correctement configuré. Vous devez également configurer PHPSTorm pour vous connecter au serveur distant.
Pour profiler votre code PHP avec Xdebug, vous devez activer le profileur dans Votre configuration XDebug. Vous pouvez ensuite exécuter votre code et XDebug générera un fichier de profilage. Ce fichier peut être analysé avec un outil comme Kcachegrind ou Qcachegrind pour obtenir des informations détaillées sur les performances de votre code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!