2014-01-22 2 views
7

Моя кодовая база придерживается (или должна) к стандарту кодирования Zend. Я использую стандарт Zend с PHP_CodeSniffer, но я вижу дискуссию о том, что стандарт Zend для phpcs несовместим и не поддерживается и не обязательно придерживается стандарта кодирования Zend. Поэтому я ищу стандарт, более последовательный, текущий и широко используемый. Что я должен использовать?Какой хороший стандарт для использования с PHP_CodeSniffer?

Я слышал о «Squiz», «PEAR» и «PSR2», но я ничего не знаю о них. Каковы различия между ними?

ответ

15

Стандарт PEAR является самым основным и стандартным, из которого большинство других развилось. Это было давно, но не обновлялось довольно долго. Первоначально он использовался пакетами PEAR (например, PHP_CodeSniffer), и я думаю, что это хороший стандарт для начинающих.

The PEAR standard contains 26 main checks.

Стандарт PSR2 является относительно новым и был разработан PHP-фиг. Он принимается в различных формах многими рамками. Я думаю, что это стандарт, который нужно выбрать, если вы хотите придерживаться одного, и вы действительно не знаете, что выбрать.

The PSR2 standard contains 40 main checks.

Squiz стандарт является один я использую на работе. Я разработал PHP_CodeSniffer, поэтому не удивительно, что стандарт, который я использую, очень строгий. В этом также содержатся проверки файлов JS и CSS, поскольку они используются в наших крупных веб-приложениях. Это определенно не стандарт для начинающих, и он меняется регулярно. Но он содержит много хороших проверок, которые могут быть включены в стандартный стандарт кодирования.

The Squiz standard contains 124 main checks.

Поэтому мое предложение для вас, чтобы испытать стандарт PSR2 и посмотреть, как вы идете. Если вы начинаете чувствовать, что это не работает для вас малыми способами, вы можете взглянуть на создание собственного файла ruleset.xml, чтобы создать собственный собственный стандарт кодирования. Для этого есть документы для этого процесса: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml

+1

Благодарим за ответ! Является ли PSR2 надмножеством PEAR - это означает, что если мой код проходит PSR2 локально, он все равно будет передавать PEAR на сервере сборки? Или есть ли какие-либо проверки в PEAR, которые не совпадают с PSR2? –

+1

PSR2 - это * не * надмножество PEAR. В настоящий момент возникает один большой конфликт, который является способом отступов операторов SWITCH. PEAR отбрасывает инструкции SWITCH таким образом, что я не видел никаких других стандартов, поэтому он в значительной степени конфликтует со всем. Там может быть больше, но я думаю, что это тот, кто вас поймает, если вы попытаетесь придерживаться обоих. –

0

Есть небольшие отличия, и это в основном вопрос о том, как вы используете или какой стандарт кода применяется кем-то другим.

PSR2 был принят большинством каркасов.

Смежные вопросы