Bonjour,
je programme à mes heures perdues et je n'ai pas certains automatismes et certaines méthodes.
En ce moment je modifie un logiciel PHP qui est écrit plus ou moins en objet.
Parmi toutes les classes, beaucoup ont des fonctions membres avec des noms identiques. Par exemple dbaccess::open et usercase::open et smtp::open
Je veux modifier usercase::open
Avant cela je veux voir où est utilisé cette fonction. Alors je fais un grep et j'ai plein de résultats qui n'ont rien à voir avec la fonction voulue. Je suis obligé de vérifier manuellement chaque ligne issue de grep.
Si c'est une ligne $smtp->open je l'ignore, même si rien ne garanti que le nom ne soit pas trompeur.
Mais $id->open m'oblige à aller dans le fichier correspondant pour voir de quoi il s'agit. Avec 50 lignes comme ça, c'est carrément chiant.
Vous utilisez quelle méthode pour ce genre de chose ?
# IDE ?
Posté par pralines . Évalué à 2.
peut-être qu'un IDE évolué tel que Eclipse ou NetBeans serait capable de te montrer ça ?
Envoyé depuis mon Archlinux
[^] # Re: IDE ?
Posté par fcartegnie . Évalué à 4.
Netbeans, définitivement.
[^] # Re: IDE ?
Posté par gremous . Évalué à 2.
Merci pour l'info.
Je viens de tester et ça n'est pas mieux que grep. Sauf que ça prends 44 Mo.
Lorsque je lui demande de m'indiquer tous les appels à send() de la classe toto, il m'affiche les appels aux fonctions send() de toutes les classes.
[^] # Re: IDE ?
Posté par pralines . Évalué à 2.
il ne faut pas utiliser la focntionnalité de recherche de l'IDE, mais les notions de refactoring comme indiqué (rapidement) dans un autre commentaire :
ça devrait te montrer tous les endroits où cette fonction/méthode est appelée dans ton projet
Envoyé depuis mon Archlinux
[^] # Re: IDE ?
Posté par gremous . Évalué à 2.
C'est bien ce que j'ai fait.
Ca me liste tout ce qui ressemble à xxx->send() et xxx::send() sans aucune distinction.
Ca me sort par exemple:
La première ligne est un appel à la librairie Swift Mailer.
La seconde ligne est un appel à la librairie PEAR.
# refactoring
Posté par Krunch (site web personnel) . Évalué à 4.
Le mot clé est « refactoring ». C'est comme ça que les IDE appelle ce genre de fonctionnalité.
Si rien n'existe déjà, il te reste à écrire un parser de PHP qui puisse te permettre de le faire.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
# Semantique?
Posté par Ben Doumenc (site web personnel) . Évalué à 3.
Ce qu'il faut c'est un grep semantique. Je sais qu'il en existe un pour le C (Coccigrep).
Peut-etre peut il etre etendu?
Sinon, perso. je travaille avec des grep "recursif", en identifiant les noms des differentes instances qui m'interessent et en filtrant dessus, ou alors par inverse en faisant des greps inverses.
PS: Excusez l'absence d'accent, clavier americain..
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.