Стандарти кодування Magento


40

Я недавно почав активно працювати з Magentoі Code наркоманом , і я хотів би знати , які стандарти я повинен слідувати.

Я спробував стандарти кодування Zend , але я не хочу використовувати обмеження 80, і він також не використовується в ядрі.

Після цього я спробував стандарти CS2 , але це не працює ні через _різні функції, і назви класів, які є _в них, і не мають просторів імен.

Отже, чи є ще один стандарт, якому основний код відповідає 100%? Якщо ні, то чи не повинно мати магенто власні стандарти кодування? У нього є власний сайт stackexchange, деякі чітко визначені стандарти кодування можуть бути використані розробниками розширень.

Відповіді:



18

Найкращі практики Magento досить добре описані тут Джошем Праттом . Він пропонує прийняти та слідувати стандартам стилю Zend Code, і я можу лише приєднатися до нього.

Довжина максимальна лінія не є суворою вимогою. Однак з точки зору читабельності занадто довгі рядки не рекомендуються.


2
Дякую, я переключив ruleset.xml на 120 символів, дозволених на рядок, так що я не отримую прикрі помилки в моєму IDE :)
Влад Преда

1
Ось правила Magento 2: raw.github.com/magento/magento2/master/dev/tests/static/… . Сказано, що дуже ймовірно, що вони використовують їх на Magento 1.x.
Боб Броді

1
Тіме, ти думаєш, ми повинні використовувати нюхати код Magento? magento.stackexchange.com/a/8743/41
kalenjordan

1
@BobBrodie - я керую Magento 1.x, і мені невідомі такі зміни, які надходять до Magento 1.x. Це було б великою і непотрібною зміною, що призведе до величезних розбіжностей без причини. Стандарт кодування Magento 1 - ZF +, Magento 2 - PSR-1/2. Будь ласка, дивіться відповідь Zyava на "офіційний" sniffer.
Пьотр Камінський


11

Я хочу стверджувати, що ми повинні використовувати нюх коду Magento 2 як стандарт для Magento 1.X та 2.X: https://github.com/cobhimself/phpcs-magento-rules/blob/master/ ruleset.xml

І ось, по суті, дзеркало цього набору правил як окремий сховище: https://github.com/cobhimself/phpcs-magento-rules


1
Я особисто використовую: github.com/magento-ecg/coding-standard
B00MER

2
Ах гарний дзвінок. Я думаю, що посилання, яке я опублікував, посилалося на дискусію Maitho 2 github ... будь-яка ідея, якщо / чим відрізняється те, що ви розмістили? Це, звичайно, більш авторитетний рахунок github.
kalenjordan

2

Ця публікація трохи стара (2008 р.), Але я думаю, що вона все ще діє:

Чи дотримується Magento стандартів кодування ZF? Так

За кількома винятками, такими як:

  • в шаблонах допускаються короткі відкриті теги.
  • точки конкатенації не укладені в пробіли.
  • відступи для довгих ліній жорстких обгортань повинні бути завжди однією м'якою вкладкою вперед.

Редагувати. Як у коментарях Тима, у основних шаблонах Magento немає коротких відкритих тегів, і краще все-таки їх не використовувати, оскільки вони не рекомендуються (див. Тут ).

Але моя рада вам ... Оскільки ви пишете власний модуль, використовуйте власний стиль кодування. З мого досвіду ви будете робити менше помилок під час написання коду у своєму власному стилі, з яким ви знайомі, ніж якщо один день дотримуєтесь стилю кодування Magento і, наприклад, наступного стилю кодування Wordpress тільки тому, що ви пишете модуль для іншого проекту веб-сайту .


2
Я категорично не згоден. Розширення спільноти повинно бути читабельним для інших.
user487772

2
І я ніколи не бачив коротких відкритих тегів у Magento.
user487772

1
Точка думки. Оскільки я мав досить багаторічний досвід роботи з програмуванням на різних проектах різними мовами програмування одночасно, у мене ніколи не було проблем з читанням добре структурованого коду, незалежно від стилю кодування, але якщо мова йде про швидке перемикання між проектами та написання коду набагато доброзичливіше мати один і той же стиль у власному коді, ніж зберігати сумісність стилю кодування з іншими за межами вашої команди.
Домен Вранкар

@DomenVrankar не припускає, що ваш стиль коду добре структурований і читабельний також на думку? Тоді як у команд, що стоять за подібними до Zend, багато людей приймають рішення щодо того, який стиль є і відомий у всьому світі. Просто їжа для роздумів ...
Том Бурман,

Я теж не згоден.
sv3n
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.