Padrões de codificação Magento

40

Eu recentemente comecei a trabalhar extensivamente com Magentoe Código sniffer , e eu gostaria de saber quais os padrões eu deveria seguir.

Tentei os padrões de codificação do Zend , mas não quero usar o limite de 80 linhas e também não é usado no núcleo.

Depois disso, tentei os padrões do CS2 , mas isso não funciona por causa das _várias funções e dos nomes de classes que possuem um _neles e não possuem espaços para nome.

Então, existe outro padrão que o código principal cumpre 100%? Caso contrário, o magento não deveria ter seus próprios padrões de codificação? Ele possui seu próprio site stackexchange, alguns padrões de codificação bem definidos seriam bem-vindos para serem usados ​​pelos desenvolvedores de extensões.

Vlad Preda
fonte

Respostas:

18

As boas práticas do Magento são bastante boas descritas por Josh Pratt aqui . Ele sugere adotar e seguir os padrões de estilo do código Zend e só posso me juntar a ele.

O comprimento máximo da linha não é um requisito estrito. No entanto, do ponto de vista da legibilidade, linhas longas demais não são incentivadas.

user487772
fonte
2
Obrigado, eu troquei o ruleset.xml 120 caracteres permitido por linha, então eu não obter os erros traquinas na minha IDE :)
Vlad Preda
11
Aqui estão as regras do Magento 2: raw.github.com/magento/magento2/master/dev/tests/static/… . Dizem que é muito provável que eles os usem no Magento 1.x.
22613 Bob Brodie
11
Tim, você acha que devemos usar o código do Magento? magento.stackexchange.com/a/8743/41
kalenjordan
11
@BobBrodie - estou gerenciando o Magento 1.x e não estou ciente dessas mudanças no Magento 1.x. Isso seria uma mudança grande e desnecessária, levando a enormes diferenças sem motivo. O padrão de codificação Magento 1 é ZF +, Magento 2 é PSR-1/2. Por favor, veja a resposta de Zyava para o farejador "oficial".
Piotr Kaminski
12

Aqui estão os mais recentes padrões de codificação do mercado Magento para Magento1 e Magento2

MEQP2 para Magento2

MEQP1 para Magento1

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

Qaisar Satti
fonte
11
Faça isso como a resposta aceita, já que esses são os padrões oficiais de codificação. Obrigado @QaisarSatti
Vlad Preda
11

Gostaria de afirmar que deveríamos usar o código sniff do Magento 2 como padrão para o Magento 1.X e 2.X: https://github.com/cobhimself/phpcs-magento-rules/blob/master/ ruleset.xml

E aqui está essencialmente um espelho desse conjunto de regras como repositório independente: https://github.com/cobhimself/phpcs-magento-rules

kalenjordan
fonte
11
Eu pessoalmente uso: github.com/magento-ecg/coding-standard
B00MER
2
Ah, boa ligação. Eu acho que o link que eu publiquei foi referenciado em uma discussão no Magento 2 no github ... alguma idéia se / como a que você postou difere? Certamente é uma conta do Github mais autoritativa.
kalenjordan
2

Este post é um pouco antigo (2008), mas acho que ainda é válido:

O Magento está seguindo os padrões de codificação ZF? sim

Com poucas exceções, como:

  • tags abertas curtas são permitidas em modelos.
  • pontos de concatenação não são colocados em espaços.
  • recuo para linhas longas envolvimentos rígidos deve estar sempre uma guia suave para a frente.

Editar Como Tim escreve no comentário, não há tags abertas curtas nos modelos principais do Magentoa e é melhor não usá-las de qualquer maneira, pois elas não são recomendadas (veja aqui ).

Mas o meu conselho para você ... Como você está escrevendo seu próprio módulo, use seu próprio estilo de codificação. Pela minha experiência, você cometerá menos erros ao escrever código no seu próprio estilo, do que se familiariza, do que se você seguir o estilo de codificação Magento um dia e, por exemplo, o estilo de codificação Wordpress no próximo, apenas porque está escrevendo um módulo para um projeto de site diferente .

Domen Vrankar
fonte
2
Eu estritamente não concordo. A extensão da comunidade deve ser legível para os outros.
user487772
2
E eu nunca vi etiquetas curtas abertas no Magento.
user487772
11
Ponto de opinião. Desde que eu tive alguns anos de experiência em programação em diferentes projetos em diferentes linguagens de programação ao mesmo tempo, nunca tive problemas para ler códigos bem estruturados, independentemente do estilo de codificação, mas quando se trata de alternar rapidamente entre os projetos e Ao escrever código, é muito mais benéfico ter o mesmo estilo em seu próprio código do que manter a compatibilidade do estilo de codificação com outras pessoas fora da sua equipe.
Domen Vrankar
@DomenVrankar não está assumindo que seu estilo de código está bem estruturado e legível também é uma opinião? Considerando que as equipes por trás de Zend têm muitas pessoas que tomam a decisão sobre qual é o estilo e é conhecido em todo o mundo. Apenas comida para o pensamento ...
Tom Burman
Eu também discordo.
sv3n