web-dev-qa-db-fra.com

Comment configurer un projet de plugin avec le débogage distant XDebug dans PhpStorm

Je cherche un détaillé instructions de configuration pour un projet de plugin dans PhpStorm avec tout le confort souhaité, comme un déploiement rapide sur un site de test, le débogage, etc.

Je vais commencer par décrire la structure actuelle de notre projet et ses problèmes.

Le dossier de projet (où il est extrait de notre système de contrôle de version) est, par exemple, C:\Projects\sampleplugin. Le site de test est C:\wamp\www\wpsite; le plug-in est donc déployé sous le nom C:\wamp\www\wpsite\wp-content\plugins\sampleplugin.

Une autre chose importante est que je dispose d’une installation propre et décompressée de WordPress mappée en tant que bibliothèque PHP dans mon projet PhpStorm afin que je reçoive des conseils de code, etc. La bibliothèque PHP ressemble à quelque chose comme: C:\wpsources\4.0.

Dans PhpStorm, j'ai configuré un déploiement (Paramètres> Déploiement) comme ceci:

  • Type: dossier local ou monté
  • Dossier: c:\wamp\www\wpsite
  • URL racine du serveur Web: http://localhost/wpsite
  • ... et sur l'onglet Mappings:
    • Chemin local: C:\Projects\sampleplugin
    • Chemin de déploiement sur le serveur 'mydeploymentname': wp-content\plugins\sampleplugin
    • Chemin Web sur le serveur 'mydeploymentname': /

Ce déploiement fonctionne bien.

Cependant, je ne sais pas comment configurer le débogage (pour que cela fonctionne). J'ai ceci dans Paramètres> PHP> Serveurs:

  • Hôte: localhost, port 80, débogueur Xdebug
  • Utiliser les mappages de chemins: cochés
  • Dans la section mappings, ce sont les mappings:
    • C:\Projects\sampleplugin -> c:\wamp\www\wpsite\wp-content\plugins\sampleplugin
    • C:\wpsources\4.0 -> c:\wamp\www\wpsite

Mais le débogage ne fonctionne pas, l'environnement distant Valider dans cette boîte de dialogue ne fonctionne pas, etc.

Est-ce que l’un d’entre vous a une configuration totalement opérationnelle où vous pouvez faire des choses comme déboguer votre plugin, entrer dans le code WP etc.?

2
Borek Bernard

Je suppose que vous avez déjà suivi les tutoriels sur la configuration de xDebug sous PHP installation et PhpStorm. Faites-moi savoir si vous avez besoin d'aide avec cela.

J'utilise xDebug Helper extension sur Chrome. Installez-le aussi.

Avec l'extension installée:

  1. Dans PhpStorm, allez à Run> Start Listening for PHP Debug Connections.
  2. Définissez un point d'arrêt dans votre code.
  3. Allez sur Chrome et sélectionnez Debug dans le petit insecte.

    xDebug Helper

  4. Actualisez votre page.

  5. De retour dans PhpStorm, acceptez la connexion entrante.

    incoming connection

  6. Profitez du débogage de votre code.

1
Bruno Rodrigues

J'ai triché en vérifiant mon plugin dans le répertoire des plugins wordpress (je ne me souviens pas si j'ai essayé un lien sim ou non), en ouvrant un projet PHPStorm sur l'ensemble de l'installation wordpress et en déboguant à partir de là.

Peut-être pas ce que tu voulais mais j'étais opérationnel en 5 minutes.

0
Disobedient Media

J'utilise PHPStorm et tout ce que vous décrivez devrait fonctionner. La seule chose à faire est d’installer et de configurer xdebug via wamp pour être sûr qu’il fonctionne.

0
Jonathan Lafleur

Ma configuration n'est pas entièrement fonctionnelle, donc ce n'est pas vraiment une réponse ... mais je voulais partager mes réflexions et quelques informations sur ce que j'ai essayé de mettre en place jusqu'à présent.

Ma configuration était à peu près la même que celle décrite par Borek.

  1. Plugins dans un répertoire sur mon système de fichiers
  2. Nettoyez WP 4.1 dans un autre répertoire du système de fichiers connecté en tant que bibliothèque (et oui, la complétion du code et tout fonctionnait bien)
  3. Serveur Web local avec des plugins pouvant être déployés correctement

Avec cette configuration, lorsque je tente de valider, je reçois le message d'erreur suivant:

"Échec de l'exécution du script de validation: 'Impossible de lire à partir de" http: //testing.localhost/_intellij_phpdebug_validator.php "car il ne s'agit pas d'un fichier.

Le "chemin d'accès local pour créer le script de validation" était défini sur C:\sources\my_plugins\plugins\privateer-page-types (la source du plug-in).

Évidemment, il cherche au mauvais endroit et j'ai donc modifié le mappage comme suit (Paramètres> Construire, Exécution, Déploiement> Déploiement):

  • Local: C:\sources\my_plugins\plugins\privateer-page-types
  • Déploiement sur le serveur: wp-content\plugins\privateer-page-types
  • Chemin Web sur le serveur:/wp-content/plugins/privateer-page-types

Je l'ai fait lorsque j'ai compris que le chemin Web était censé être le chemin Web du projet sur le serveur.

Une fois que j'ai fait cela, allez dans Paramètres> Langues et cadres> PHP> Serveurs et en sélectionnant Valider, j'avais la configuration suivante:

  • Serveur de déploiement: test local
  • Chemin local pour créer le script de validation: C:\sources\my_plugins\plugins\privateer-page-types (le répertoire source local)

Cliquez sur valider maintenant pour afficher correctement le fichier php.ini, xdebug, l'hôte distant, etc.

J'ai ensuite mis en place une configuration Run/Debug:

  • Application Web PHP
  • Nom: wp-root
  • URL de départ: /
  • Serveur: Test de plugin
  • Navigateur: Chrome (avec l'aide de xdebug installée)

Au démarrage du débogueur, il se trouve en attente de la connexion entrante avec la clé ide 16907 mais ne remarque jamais la connexion.

J'ai essayé de changer le port de 9000 à 8080 sous Paramètres> Langages et Frameworks> PHP> Déboguer> Xdebug.Debug port ... ce qui a ensuite empêché xdebug de démarrer car phpstorm est configuré pour utiliser xdebug sur 8080 (Paramètres> Construire, Exécution, Déploiement> Débogueur).

À ce stade, les choses semblent devoir fonctionner, mais pour une raison quelconque, je ne peux pas aller au-delà de "l'écoute".

J'ai essayé une configuration (notée ci-dessus) avec l'URL de départ sous la forme /, une avec l'URL de début sous la forme index.php et une autre avec l'URL de départ comme fichier plugin principal ... le tout avec le même résultat.

Quoi qu'il en soit, cela aidera peut-être quelqu'un ... et si je le fais enfin fonctionner, je ferai une mise à jour.

0
Privateer