2010-07-01 3 views
0

J'ai étudié le problème de visibilité en PHP (public, privé, protégé) et je me demandais comment ce type de "dom-building" est implémenté en PHP? Je veux dire qu'il devrait y avoir une sorte d'algorithme que PHP utilise pour parcourir toutes vos classes et établir des relations entre eux. Je ne sais pas si on l'appelle "dom-building", mais je pense que les mêmes algorithmes sont utilisés par les IDE modernes qui peuvent l'utiliser pour l'auto-complétion.Les profondeurs internes de PHP

Quelqu'un peut-il me rediriger vers une bonne ressource? Merci.

+0

Je suis sûr que votre IDE préféré utilise juste [Reflection] (http://de2.php.net/manual/fr/book.reflection.php) pour l'assistance au code. – Gordon

+0

La balise C++ est-elle appropriée ici? Sinon, supprimez-le. – pmr

+0

Eh bien puisque php est écrit en C++ et la question concerne l'implémentation de php .. Je suppose que c'est approprié. – Dziamid

Répondre

1

PHP ne traverse pas toutes vos classes et n'établit aucune relation entre elles. Seulement lors de l'exécution, lorsque vous appelez une méthode sur une autre classe, PHP vérifie si cette méthode est accessible (c'est-à-dire publique ou dans certains cas protégée).

+0

Est-ce si simple? D'accord. Mais PHP doit analyser votre code avant de pouvoir "vérifier" l'accessibilité. Donc, la façon dont je le vois: l'analyse devrait aboutir à une sorte d'objet DOM ..? Ou ce n'est pas comment cela fonctionne? – Dziamid

+1

L'analyse produit un * arbre d'analyse * ou * un arbre de syntaxe *. Cet arbre est ensuite compilé en * opcodes *. Ces opcodes sont comme l'assemblage pour PHP. L'interpréteur PHP exécute ces opcodes. – Sjoerd

+0

Pouvez-vous me diriger vers une ressource où cela est décrit? – Dziamid