web-dev-qa-db-fra.com

j! dump: Comment puis-je savoir où une classe est définie?

Je suis un débutant avec PHP et le développement de Joomla Core. Cette excellente extension m’aide beaucoup lors de mon apprentissage. Une situation très fréquente lorsque j’essaie de comprendre du code est qu’il la classe étant invoquée dans une ligne et je veux examiner la définition de la classe mais je ne sais pas où elle se trouve. Avant j! dump, je devais télécharger l'extension en question et effectuer une recherche textuelle dans la classe, ce qui prend beaucoup Je pense que ce but simple peut être atteint en utilisant j! dump, mais je ne sais pas comment.

$messages = modPimediaplayerHelper::getStudy($params);

Cette ligne se trouve dans le fichier PHP du module). J'aimerais savoir où est défini ce modPimediaplayerHelper. J'ai essayé dump(modPimediaplayerHelper) et dump(modPimediaplayerHelper::getStudy), les deux ne fonctionnent pas, que dois-je faire?

En passant, lorsque j'essaie de dump($params), il retourne un objet sans propriétés significatives, mais uniquement des méthodes, ce qui me pousse à examiner comment cet objet $ params est défini, comment utiliser J! Dump pour le suivre?

2
shenkwen

Vous ne pouvez pas savoir où la classe est définie en utilisant JDump

Vous pouvez savoir si, de l'intérieur d'une méthode en cours d'exécution, utilisez dumpTrace (); , mais pas en dehors d'une classe.

Pour obtenir ce dont vous avez besoin, essayez ceci. https://stackoverflow.com/questions/2420066/finding-the-php-file-at-run-time-where-a-class-was-defined

BTW, avez-vous visité le backend Joomla JDump? /administrator/index.php? option = com_dump Il existe quelques options JDump utiles dans d'autres cas.

1
Gruz

Comme vous faites référence à un module qui est (à mon avis) le type d'extension le plus simple, je vais répondre à cela uniquement pour un module.

La plupart des modules ont un fichier helper.php qui contient une fonction qui extrait les données à afficher dans la sortie du module, donc tout ce qui se passe dans les coulisses.

C'est ici que votre classe modPimediaplayerHelper sera définie.

Il suffit donc de regarder dans le répertoire suivant:

ROOT/modules/mod_pmedia_player_helper/helper.php

Note: J'ai utilisé mod_pmedia_player_helper dans le chemin comme une supposition. C'est peut-être légèrement différent, mais c'est certainement quelque chose dans ce sens.

J'espère que cela t'aides

0
Lodder