Mit dem folgenden Beispiel kann man in einem Php Codestandard Variablen Namen verbieten.
Das ist ein sehr gutes Beispiel dafür, wie man einen eigenen Sniff programmiert. Mit eigenen Regeln kann man einen eigenen Standard sehr gut und flexibel erweitern. Das kann hilfreich sein, wenn man Beispielsweise Temp Variablen verbieten möchte. Allerdings kann der Webdeveloper auch einfach statt $temp eine $tmp Php Variable nutzen. Zudem wird auch öfter mal mit $temp Variablen das template ausgezeichnet. Die Frage ist also, ob einem dieser Sniff wirklich so viel in der effektiven Webentwicklung bringt. Es ist aber ein sehr gutes Einstiegsbeispiel für die Entwicklung eigener Sniffs.
Php Codestandard Varibalen Namen verbieten
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
/** * Find bad variable sniff. * * PHP version 5 * * @category PHP * @package PHP_CodeSniffer * @author Roland Golla <rgolla@rogo.it> * @link https://www.rogoit.de */ /** * Class ROGOIT_Sniffs_Examples_NoBadVariablesSniff * * @category PHP * @package PHP_CodeSniffer * @author Roland Golla <r.golla@reuter.de> * @link http://www.reuter.de * */ class REUT_Sniffs_Examples_NoBadVariablesSniff implements PHP_CodeSniffer_Sniff { protected $forbiddenVariables = array( 'temp' ); /** * Returns the token types that this sniff is detected for. * * @return array(int) */ public function register() { return array(T_VARIABLE); } /** * Processes the tokens that this sniff is interested in. * * @param PHP_CodeSniffer_File $phpcsFile The file where the token was found * @param int $stackPtr The position in the stack where the token was found */ public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); foreach ($this->forbiddenVariables as $forbiddenVariables) { if (strpos($tokens[$stackPtr]['content'], $forbiddenVariables)) { $phpcsFile->addError( 'No bad variables. Found ' . $tokens[$stackPtr]['content'], $stackPtr ); } } } } |
Hier wird ein Array mit den möglichen Strings definiert. Kommt „temp“ in einem Variablennamen vor meldet der Php Codestandard Sniff die Variable als Error. Eine solche Maßnahme sollte auf jeden Fall im Team besprochen werden. Die Variablennamen können in dem Array beliebig erweitert werden. Es werden auch Teilstrings. Ein konkretes Beispiel hat der Codestandard von der Entwicklungshilfe NRW auf Github unter Codestandard Entwicklungshilfe NRW.