Normes de codage Magento

40

J'ai récemment commencé à travailler intensivement avec Magentoet code sniffer , et je voudrais savoir quelles normes je devrais suivre.

J'ai essayé les normes de codage Zend , mais je ne veux pas utiliser la limite de 80 lignes, et elle n'est pas utilisée dans le noyau non plus.

Après cela, j'ai essayé les normes CS2 , mais cela ne fonctionne pas non plus à cause de la _diversité des fonctions et des noms de classe, qui contiennent un _et qui n'ont pas d'espaces de noms.

Alors, y a-t-il une autre norme à laquelle le code principal est conforme à 100%? Sinon, magento ne devrait-il pas avoir ses propres normes de codage? Il dispose de son propre site stackexchange, mais les développeurs d’extensions sont invités à utiliser des normes de codage bien définies.

Vlad Preda
la source

Réponses:

18

Les meilleures pratiques de Magento sont très bien décrites par Josh Pratt ici . Il suggère d'adopter et de suivre les normes de style de code Zend et je ne peux que le rejoindre.

La longueur de ligne maximale n'est pas une exigence stricte. Cependant, du point de vue de la lisibilité, les lignes trop longues ne sont pas encouragées.

utilisateur487772
la source
2
Merci, j'ai basculé le ruleset.xml à 120 caractères autorisés par ligne afin que je ne reçois pas les erreurs embêtantes dans mon IDE :)
Vlad Preda
1
Voici les règles de Magento 2: raw.github.com/magento/magento2/master/dev/tests/static/… . Selon nos informations, il est fort probable qu'ils les utilisent sur Magento 1.x.
Bob Brodie
1
Tim, pensez-vous que nous devrions utiliser le code sniff de Magento? magento.stackexchange.com/a/8743/41
kalenjordan
1
@BobBrodie - Je gère Magento 1.x et je ne suis pas au courant de tels changements survenant dans Magento 1.x. Ce serait un changement important et inutile, qui entraînerait d’énormes différences sans raison. La norme de codage Magento 1 est ZF +, Magento 2 est PSR-1/2. S'il vous plaît voir la réponse de Zyava pour "renifleur" officiel.
Piotr Kaminski
12

Voici la dernière norme de codage du marché Magento pour Magento1 et Magento2

MEQP2 pour Magento2

MEQP1 pour Magento1

https://github.com/magento/marketplace-eqp

Qaisar Satti
la source
1
Ceci est la réponse acceptée, car ce sont les normes officielles de codage. Merci @QaisarSatti
Vlad Preda
11

Je voudrais soumettre que nous devrions utiliser le renifleur de code Magento 2 comme norme pour Magento 1.X et 2.X: https://github.com/cobhimself/phpcs-magento-rules/blob/master/ ruleset.xml

Et voici essentiellement un miroir de ce jeu de règles en tant que référentiel autonome: https://github.com/cobhimself/phpcs-magento-rules

Kalenjordan
la source
1
Personnellement
j'utilise
2
Ah bon appel. Je pense que le lien que j'ai posté a été référencé dans une discussion sur github de Magento 2 ... avez-vous une idée si / en quoi celui que vous avez posté diffère? C'est certainement un compte github plus autoritaire.
kalenjordan
2

Ce post est un peu vieux (2008) mais je suppose qu'il est toujours valable:

Magento respecte-t-il les normes de codage ZF? Oui

À quelques exceptions près, telles que:

  • les balises ouvertes courtes sont autorisées dans les modèles.
  • les points de concaténation ne sont pas enfermés dans des espaces.
  • l'indentation des longues lignes doit toujours être précédée d'un onglet.

Modifier Comme Tim Worte dans le commentaire , il n'y a pas de courtes balises ouvertes dans templatesa de base Magento et il est préférable de ne pas les utiliser de toute façon car ils ne sont pas conseillé (voir ici ).

Mais mon conseil à vous ... Puisque vous écrivez votre propre module, utilisez votre propre style de codage. D'après mon expérience, vous ferez moins d'erreurs lors de la rédaction de code dans votre propre style, ce qui vous est familier que si vous suivez un jour le style de codage Magento et par exemple le style de codage Wordpress le lendemain, simplement parce que vous écrivez un module pour un projet de site Web différent. .

Domen Vrankar
la source
2
Je ne suis strictement pas d'accord. Les extensions de communauté doivent être lisibles pour les autres.
user487772
2
Et je n'ai jamais vu de petites balises ouvertes dans Magento.
user487772
1
Point de vue. Depuis plusieurs années d’expérience dans la programmation simultanée de différents projets dans différents langages de programmation, je n’ai jamais eu de problèmes pour lire du code bien structuré, quel que soit le style de codage utilisé, mais quand il s’agissait de basculer en écrivant du code, il est bien plus avantageux d’avoir le même style dans votre propre code que de maintenir la compatibilité du style de code avec d’autres personnes en dehors de votre équipe.
Domen Vrankar
@ DomenVrankar n'est pas en supposant que votre style de code est bien structuré et lisible aussi un avis? Tandis que les équipes derrière les goûts de Zend, de nombreuses personnes décident du style et de la renommée mondiale. Juste de quoi penser ...
Tom Burman
Je ne suis pas d'accord aussi.
sv3n