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ń.

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.


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


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



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 .


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.