Standardy kodowania Magento

40

Niedawno rozpoczął pracę obszernie Magentoi Kodeksu sniffer , i chciałbym wiedzieć, jakie standardy powinien podążać.

Próbowałem standardów kodowania Zend , ale nie chcę używać limitu 80 linii i nie jest on również używany w rdzeniu.

Potem wypróbowałem standardy CS2 , ale to też nie działa z powodu _różnych funkcji i nazw klas, które mają _w nich i nie mają przestrzeni nazw.

Czy jest więc inny standard, z którym kod podstawowy jest w 100% zgodny? Jeśli nie, to czy magento nie powinno mieć własnych standardów kodowania? Ma własną stronę wymiany stosów, niektóre dobrze zdefiniowane standardy kodowania byłyby mile widziane dla twórców rozszerzeń.

Vlad Preda
źródło

Odpowiedzi:

18

Magento najlepsze praktyki są dość dobrze opisane przez Josh Pratt tutaj . Sugeruje przyjęcie i przestrzeganie standardów stylu Zend Code, a ja mogę tylko do niego dołączyć.

Długość linii maksymalna nie jest ścisły wymóg. Jednak z punktu widzenia czytelności nie zaleca się zbyt długich linii.

użytkownik487772
źródło
2
Dzięki, zmieniłem plik rulesset.xml na 120 znaków w linii, więc nie dostaję nieprzyjemnych błędów w moim IDE :)
Vlad Preda
1
Oto zasady z Magento 2: raw.github.com/magento/magento2/master/dev/tests/static/… . Mówi się, że jest bardzo prawdopodobne, że używają ich na Magento 1.x.
Bob Brodie
1
Tim, czy uważasz, że powinniśmy użyć wąchania kodu Magento? magento.stackexchange.com/a/8743/41
kalenjordan
1
@BobBrodie - Zarządzam Magento 1.x i nie jestem świadomy takich zmian w Magento 1.x. Byłaby to duża i niepotrzebna zmiana, prowadząca do ogromnych różnic bez żadnego powodu. Standard kodowania Magento 1 to ZF +, Magento 2 to PSR-1/2. Zobacz odpowiedź Zyavy na „oficjalny” sniffer.
Piotr Kamiński
12

Oto najnowszy standard kodowania Magento dla Magento1 i Magento2

MEQP2 Dla Magento2

MEQP1 Dla Magento1

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

Qaisar Satti
źródło
1
Uczyniono to jako przyjętą odpowiedź, ponieważ są to oficjalne standardy kodowania. Dzięki @QaisarSatti
Vlad Preda,
11

Chciałbym oświadczyć, że powinniśmy używać sniffowania kodu Magento 2 jako standardu zarówno dla Magento 1.X, jak i 2.X: https://github.com/cobhimself/phpcs-magento-rules/blob/master/ ruleset.xml

A oto w zasadzie lustro tego zestawu reguł jako samodzielnego repozytorium: https://github.com/cobhimself/phpcs-magento-rules

kalenjordan
źródło
1
Ja osobiście używam: github.com/magento-ecg/coding-standard
B00MER
2
Ach, dobra rozmowa. Myślę, że do linku, który opublikowałem, przywołano w dyskusji na githubie Magento 2 ... jakiś pomysł, czy / jak różni się ten, który opublikowałeś? To z pewnością bardziej wiarygodne konto github.
kalenjordan
2

Ten post jest nieco stary (2008), ale sądzę, że nadal jest ważny:

Czy Magento przestrzega standardów kodowania ZF? tak

Z kilkoma wyjątkami, takimi jak:

  • krótkie otwarte tagi są dozwolone w szablonach.
  • kropki konkatenacji nie są ujęte w spacje.
  • wcięcie w przypadku długich linii ciężkich owinięć powinno zawsze być jedną miękką zakładką do przodu.

Edytuj Jako Tim w komentarzu w podstawowych szablonach Magento nie ma krótkich otwartych tagów i lepiej ich nie używać, ponieważ nie są zalecane (patrz tutaj ).

Ale moja rada dla ciebie ... Ponieważ piszesz własny moduł, użyj własnego stylu kodowania. Z mojego doświadczenia popełnisz mniej błędów, pisząc kod we własnym stylu, który znasz, niż gdy będziesz postępować zgodnie ze stylem kodowania Magento jednego dnia, a np. Stylem kodowania Wordpress następnego tylko dlatego, że piszesz moduł dla innego projektu strony internetowej .

Domen Vrankar
źródło
2
Ściśle się nie zgadzam. Rozszerzenie społeczności musi być czytelne dla innych.
user487772
2
I nigdy nie widziałem krótkich otwartych tagów w Magento.
user487772,
1
Punkt sprzeciwu. Ponieważ miałem dość kilkuletnie doświadczenie w programowaniu różnych projektów w różnych językach programowania jednocześnie, nigdy nie miałem problemów z czytaniem dobrze ustrukturyzowanego kodu bez względu na styl kodowania, ale jeśli chodzi o szybkie przełączanie między projektami i pisząc kod, korzystniej jest mieć taki sam styl w swoim własnym kodzie, niż zachować zgodność stylu kodowania z innymi osobami spoza zespołu.
Domen Vrankar
@DomenVrankar nie zakłada, że ​​styl kodu jest dobrze skonstruowany i czytelny, a także opinia? Podczas gdy zespoły takie jak Zend mają wiele osób decydujących o tym, jaki styl jest i jest znany na całym świecie. Tylko jedzenie do namysłu ...
Tom Burman
Ja też się nie zgadzam.
sv3n