Estándares de codificación de Magento

40

Recientemente he comenzado a trabajar intensamente con Magentoy Código sniffer , y me gustaría saber qué normas debo seguir.

Probé Zend normas de codificación , pero no quiero utilizar el límite de 80 líneas y no se utiliza ya sea en el núcleo.

Después de eso, probé los estándares CS2 , pero eso tampoco funciona debido a las _diversas funciones y los nombres de clase, que tienen una _y no tienen espacios de nombres.

Entonces, ¿hay otro estándar con el que el código central cumpla al 100%? Si no, ¿no debería tener Magento sus propios estándares de codificación? Tiene su propio sitio de intercambio de pila, los desarrolladores de extensiones podrían usar algunos estándares de codificación bien definidos.

Vlad Preda
fuente

Respuestas:

18

Las mejores prácticas de Magento son bastante buenas descritas por Josh Pratt aquí . Sugiere adoptar y seguir los Estándares de Estilo del Código Zend y solo puedo unirme a él.

La longitud máxima de la línea no es un requisito estricto. Sin embargo, desde el punto de vista de legibilidad, no se recomiendan líneas demasiado largas.

usuario487772
fuente
2
Gracias, cambié el ruleset.xml a 120 caracteres permitidos por línea para no tener los molestos errores en mi IDE :)
Vlad Preda
1
Aquí están las reglas de Magento 2: raw.github.com/magento/magento2/master/dev/tests/static/… . Se dice que es muy probable que los usen en Magento 1.x.
Bob Brodie
1
Tim, ¿crees que deberíamos usar el código de Magento? magento.stackexchange.com/a/8743/41
kalenjordan
1
@BobBrodie: estoy administrando Magento 1.x y no estoy al tanto de tales cambios en Magento 1.x. Este sería un cambio grande e innecesario, que llevaría a grandes diferencias sin ninguna razón. El estándar de codificación Magento 1 es ZF +, Magento 2 es PSR-1/2. Vea la respuesta de Zyava para el sniffer "oficial".
Piotr Kaminski
12

Aquí están los últimos estándares de codificación del mercado de Magento para Magento1 y Magento2

MEQP2 para Magento2

MEQP1 para Magento1

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

Qaisar Satti
fuente
1
Hizo esto como la respuesta aceptada ya que estos son los estándares oficiales de codificación. Gracias @QaisarSatti
Vlad Preda
11

Me gustaría presentar que deberíamos estar usando el código de Magento 2 como estándar para Magento 1.X y 2.X: https://github.com/cobhimself/phpcs-magento-rules/blob/master/ ruleset.xml

Y aquí está esencialmente un espejo de ese conjunto de reglas como un repositorio independiente: https://github.com/cobhimself/phpcs-magento-rules

kalenjordan
fuente
1
Yo personalmente uso: github.com/magento-ecg/coding-standard
B00MER
2
Ah buena llamada. Creo que el enlace que publiqué fue referenciado en una discusión de Gageub de Magento 2 ... ¿alguna idea de si / cómo difiere el que publicaste? Ciertamente es una cuenta de Github más autorizada.
kalenjordan
2

Esta publicación es un poco antigua (2008) pero supongo que sigue siendo válida:

¿Magento sigue los estándares de codificación ZF? Sí

Con pocas excepciones, como:

  • Se permiten etiquetas abiertas cortas en las plantillas.
  • los puntos de concatenación no están encerrados en espacios.
  • La sangría para líneas largas debe ser siempre una pestaña suave hacia adelante.

Editar Como Tim comenta en el comentario, no hay etiquetas abiertas cortas en las plantillas principales de Magento y es mejor no usarlas de todos modos ya que no se recomiendan (ver aquí ).

Pero mi consejo para ti ... Ya que estás escribiendo tu propio módulo, usa tu propio estilo de codificación. Según mi experiencia, cometerá menos errores al escribir código en su propio estilo, con el que está familiarizado, que si sigue el estilo de codificación de Magento un día y, por ejemplo, el estilo de codificación de Wordpress al siguiente solo porque está escribiendo un módulo para un proyecto de sitio web diferente .

Domen Vrankar
fuente
2
Estoy estrictamente de acuerdo. La extensión comunitaria debe ser legible para otros.
user487772
2
Y nunca vi etiquetas abiertas cortas en Magento.
user487772
1
Punto de opinión. Dado que he tenido bastantes años de experiencia con la programación en diferentes proyectos en diferentes lenguajes de programación al mismo tiempo, nunca he tenido problemas para leer códigos bien estructurados sin importar el estilo de codificación, pero cuando se trata de cambiar rápidamente entre los proyectos y al escribir código, es mucho más beneficioso tener el mismo estilo en su propio código que mantener la compatibilidad del estilo de codificación con otros fuera de su equipo.
Domen Vrankar
@DomenVrankar no está asumiendo que su estilo de código está bien estructurado y es legible, ¿también es una opinión? Mientras que los equipos detrás de personas como Zend tienen a muchas personas que toman la decisión de cuál es el estilo y cuál es conocido en todo el mundo. Solo alimento para pensar ...
Tom Burman
Yo tampoco estoy de acuerdo.
sv3n