2012-12-06 2 views
1

Есть ли у кого-нибудь какие-либо учебники, которые актуальны и включают более сложную обработку правил? Большинство обучающих программ, которые я нахожу в режиме онлайн, не имеют отношения к 1.4.3, с ruleset.xml, но старый php-файл кодирования.PHP_CodeSniffer Tutorials

Во-вторых, я хочу сделать более глубокую обработку, так как наша компания имеет разные стандарты кодирования, которые мне нужно кодировать для обеспечения соблюдения, и хочу, чтобы было хорошее начальное место для понимания существующих сложных нюхов и структур в нем.

Наша компания использует разные стандарты, чем общие библиотеки, поэтому при чтении кода разработчик знает, является ли метод из внешней библиотеки (PEAR/Zend/etc ...), поскольку это соглашение укажет на это. Если стандарт кодирования не является нашим форматом, то метод находится из внешней библиотеки, и, как правило, хорошо, что он работает хорошо, без необходимости того, чтобы разработчик мог что-то повторить.

В более крупных базовых кодах вы увидите созданный класс и методы, на которые ссылаются, не зная источников, без отслеживания стека. Поэтому, используя разные стандарты, классы будут выделяться.

Например:

$Foo = Foo::Find(); // Mixed case - from a library or PHP itself 
$Bar = BAR::Find(); // All uppercase - ours, may need to optimize the Find() 

Объявление переменного являются одинаковым, где мы используем завершающее подчеркивание о методах и переменных, чтобы указать Private сферы. Если кто-то меняет разрешение области, они удаляют подчеркивание, а ключевое слово change/remove private четко укажет, что они понимают последствия их изменения.

ответ

1

Начните здесь, но основные: http://pear.php.net/manual/en/package.php.php-codesniffer.coding-standard-tutorial.php

PHP_CodeSniffer поставляется с довольно много нюхает, которые делают много разных вещей. Возможно, стоит рассмотреть некоторые из них, чтобы увидеть, как они используют стек токенов.

Использование аргумента командной строки -vv также является действительно хорошим способом увидеть, как файл преобразуется в токены. Это поможет вам зарегистрироваться для поиска правильных типов токенов и использовать методы $ phpcsFile-> findNext() и $ phpcsFile-> findPrevious(), которые используют многие нюансы.

Вот небольшой сопение, что может быть стоит посмотреть на: https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/ElseIfDeclarationSniff.php

И еще, что показывает использование дополнительных индексов в маркере стека: https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PSR2/Sniffs/ControlStructures/ControlStructureSpacingSniff.php

+0

Спасибо. Я использовал базовый учебник, но теперь я ищу, чтобы создать некоторые сложные нюансы, чтобы соответствовать нашим стандартам. Спасибо за ссылки. Я обязательно добавлю то, что я узнаю, к нашей внутренней вики и, вероятно, к моему блогу или вики развития, а также к другим. Полюбите инструмент, и я вижу, что вы сделали несколько обнюхиваний. –