2010-10-16 23 views
3

En guise de suivi à an earlier question Je me demande si quelqu'un sait pourquoi les modèles Magento déclarent tous leurs variables avec un trait de soulignement. Les modèles sont des fichiers .phtml include -d à partir de Mage_Core_Block_Template::fetchView(), leurs variables locales sont éliminées à la fin de la fonction et ne deviennent jamais globales.Pourquoi les variables locales dans Magento ont-elles un préfixe de soulignement?

Alors, quel est le point de souligner?

Répondre

3

je pense qu'il est de respecter la convention de nommage de ZF:

http://framework.zend.com/manual/en/coding-standard.naming-conventions.html#coding-standard.naming-conventions.variables

Pour les variables qui sont déclarées avec le modificateur « privé » ou « protégés », le premier caractère du nom de la variable doit être un seul trait de soulignement. C'est la seule application acceptable d'un trait de soulignement dans un nom de variable. Les variables membres déclarées "public" ne doivent jamais commencer par un trait de soulignement.

+0

Bien que ce soit un bon point, je ne suis pas encore convaincu que c'est une raison valable. Les variables du modèle ne sont ni "privées" ni "protégées" car elles n'existent que dans la portée locale. Ce ne sont pas du tout des variables d'instance. – clockworkgeek

+5

À noter, des années plus tard, une réponse officielle de Vinai Koop https://twitter.com/vinaikopp/status/225318270591442945 –

3

Pas de réponse certaine ici, mais je crois que c'est juste une convention interne de codage d'équipe magento. Je suis sûr que vous êtes au courant de la underscore prefix's history dans la programmation en général. Il est pas trop exagéré de penser que

variables locales utilisées dans un script de vue qui sont faiblement couplés avec un objet sont semblables à des variables privées ou protégées

En d'autres termes, le trait de soulignement sert comme un avertissement que

hey, le contenu de cette variable n'appartient pas seulement à ce point de vue, elle appartient à quelque chose d'autre

Une partie du problème est qu'il n'y a pas de recommandations "officielles" de Zend, ou de qui que ce soit d'autre, sur le type de conventions de nommage à utiliser dans les fichiers phtml.

+0

pourquoi @ voir ou @ var utilisé dans certains des modèles magento et pas tous – huzefam

+0

Pas sûr, mais je pense que ceux-ci sont inclus pour les modèles qui sont distinctement liés à un bloc spécialisé particulier, par opposition aux anciens blocs de base/modèle. –

+0

vérifié à travers différents modèles..la documentation semble tout à fait aléatoire .. merci pour la réponse! – huzefam