Standard di codifica Magento


40

Di recente ho iniziato a lavorare ampiamente con SnifferMagento e Code , e vorrei sapere quali standard dovrei seguire.

Ho provato gli standard di codifica Zend , ma non voglio usare il limite di 80 righe, e non è nemmeno usato nel core.

Dopodiché, ho provato gli standard CS2 , ma questo non funziona neanche a causa delle _varie funzioni e dei nomi delle classi, che ne hanno uno _e non hanno spazi dei nomi.

Quindi, esiste un altro standard a cui il codice principale è conforme al 100%? In caso contrario, Magento non dovrebbe avere i suoi standard di codifica? Ha un proprio sito di stackexchange, alcuni sviluppatori di estensioni potrebbero usare alcuni standard di codifica ben definiti.

Risposte:



18

Le migliori pratiche di Magento sono abbastanza buone descritte da Josh Pratt qui . Suggerisce di adottare e seguire gli standard Zend Code Style e posso solo unirmi a lui.

La lunghezza massima della linea non è un requisito rigoroso. Tuttavia, dal punto di vista della leggibilità, le righe troppo lunghe non sono incoraggiate.


2
Grazie, ho passato il ruleset.xml a 120 caratteri consentiti per riga, quindi non ottengo i fastidiosi errori nel mio IDE :)
Vlad Preda,

1
Ecco le regole di Magento 2: raw.github.com/magento/magento2/master/dev/tests/static/… . Si dice che è molto probabile che li usino su Magento 1.x.
Bob Brodie,

1
Tim, pensi che dovremmo usare l'annusatore di codice Magento? magento.stackexchange.com/a/8743/41
kalenjordan

1
@BobBrodie - Sto gestendo Magento 1.x e non sono a conoscenza di tali cambiamenti in arrivo su Magento 1.x. Questo sarebbe un cambiamento grande e inutile, che porta a enormi differenze senza motivo. Lo standard di codifica Magento 1 è ZF +, Magento 2 è PSR-1/2. Si prega di consultare la risposta di Zyava per lo sniffer "ufficiale".
Piotr Kaminski,


11

Mi piacerebbe presentare che dovremmo usare l'annusamento del codice Magento 2 come standard per Magento 1.X e 2.X: https://github.com/cobhimself/phpcs-magento-rules/blob/master/ ruleset.xml

Ed ecco essenzialmente un mirror di quel set di regole come repository autonomo: https://github.com/cobhimself/phpcs-magento-rules



2
Ah buona chiamata. Penso che al link che ho pubblicato sia stato fatto riferimento in una discussione github su Magento 2 ... hai idea se / come differisce quello che hai pubblicato? È sicuramente un account github più autorevole.
Kalenjordan

2

Questo post è un po 'vecchio (2008) ma immagino che sia ancora valido:

Magento sta seguendo gli standard di codifica ZF? sì

Con poche eccezioni, come:

  • i tag aperti brevi sono consentiti nei modelli.
  • i punti di concatenazione non sono racchiusi negli spazi.
  • il rientro per le linee lunghe impacchi rigidi dovrebbe essere sempre una linguetta morbida in avanti.

Modifica Come commenta Tim nel commento, non ci sono tag aperti brevi nei template di base Magentoa ed è meglio non usarli comunque poiché non sono raccomandati (vedi qui ).

Ma il mio consiglio per te ... Dato che stai scrivendo il tuo modulo, usa il tuo stile di codifica. Dalla mia esperienza commetterai meno errori quando scrivi il codice nel tuo stile, con cui hai familiarità, che se segui lo stile di codifica Magento un giorno e, ad esempio, lo stile di codifica Wordpress il prossimo solo perché stai scrivendo un modulo per un progetto di sito Web diverso .


2
Non sono assolutamente d'accordo. L'estensione della comunità deve essere leggibile per gli altri.
user487772,

2
E non ho mai visto tag aperti brevi in ​​Magento.
user487772,

1
Punto di opposizione. Da quando ho avuto parecchi anni di esperienza con la programmazione su diversi progetti in diversi linguaggi di programmazione allo stesso tempo, non ho mai avuto problemi a leggere un codice ben strutturato, indipendentemente dallo stile di codifica, ma quando si tratta di passare rappidamente tra i progetti e scrivere codice è molto più vantaggioso avere lo stesso stile nel tuo codice piuttosto che mantenere la compatibilità dello stile di codifica con altri al di fuori del tuo team.
Domen Vrankar,

@DomenVrankar non sta assumendo che il tuo stile di codice sia ben strutturato e leggibile anche un'opinione? Considerando che le squadre dietro artisti del calibro di Zend hanno molte persone che prendono la decisione su quale sia lo stile ed è conosciuto in tutto il mondo. Solo spunti di riflessione ...
Tom Burman,

Anch'io non sono d'accordo.
sv3n,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.