summaryrefslogtreecommitdiff
path: root/_cs
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2012-03-16 12:09:13 +0100
committerAndreas Gohr <andi@splitbrain.org>2012-03-16 12:09:13 +0100
commitd086370fa9b2f3cfa66d4584ed76314e216df899 (patch)
tree26bd05fd4f5be4553059024de157caeaba9dd575 /_cs
parentd4dca43453a7a9e798c208cbb89ee09616381dde (diff)
downloadrpg-d086370fa9b2f3cfa66d4584ed76314e216df899.tar.gz
rpg-d086370fa9b2f3cfa66d4584ed76314e216df899.tar.bz2
more codesniffer updates
Diffstat (limited to '_cs')
-rw-r--r--_cs/DokuWiki/Sniffs/NamingConventions/ConstructorNameSniff.php85
-rw-r--r--_cs/DokuWiki/ruleset.xml103
2 files changed, 142 insertions, 46 deletions
diff --git a/_cs/DokuWiki/Sniffs/NamingConventions/ConstructorNameSniff.php b/_cs/DokuWiki/Sniffs/NamingConventions/ConstructorNameSniff.php
new file mode 100644
index 000000000..7dd6d9366
--- /dev/null
+++ b/_cs/DokuWiki/Sniffs/NamingConventions/ConstructorNameSniff.php
@@ -0,0 +1,85 @@
+<?php
+/**
+ * Generic_Sniffs_NamingConventions_ConstructorNameSniff.
+ *
+ * PHP version 5
+ *
+ * @category PHP
+ * @package PHP_CodeSniffer
+ * @author Greg Sherwood <gsherwood@squiz.net>
+ * @author Leif Wickland <lwickland@rightnow.com>
+ * @copyright 2006-2011 Squiz Pty Ltd (ABN 77 084 670 600)
+ * @license http://matrix.squiz.net/developer/tools/php_cs/licence BSD Licence
+ * @link http://pear.php.net/package/PHP_CodeSniffer
+ */
+
+if (class_exists('PHP_CodeSniffer_Standards_AbstractScopeSniff', true) === false) {
+ $error = 'Class PHP_CodeSniffer_Standards_AbstractScopeSniff not found';
+ throw new PHP_CodeSniffer_Exception($error);
+}
+
+/**
+ * Generic_Sniffs_NamingConventions_ConstructorNameSniff.
+ *
+ * Favor PHP 5 constructor syntax, which uses "function __construct()".
+ * Avoid PHP 4 constructor syntax, which uses "function ClassName()".
+ *
+ * @category PHP
+ * @package PHP_CodeSniffer
+ * @author Leif Wickland <lwickland@rightnow.com>
+ * @license http://matrix.squiz.net/developer/tools/php_cs/licence BSD Licence
+ * @version Release: 1.3.3
+ * @link http://pear.php.net/package/PHP_CodeSniffer
+ */
+class DokuWiki_Sniffs_NamingConventions_ConstructorNameSniff extends Generic_Sniffs_NamingConventions_ConstructorNameSniff
+{
+ /**
+ * Processes this test when one of its tokens is encountered.
+ *
+ * @param PHP_CodeSniffer_File $phpcsFile The current file being scanned.
+ * @param int $stackPtr The position of the current token
+ * in the stack passed in $tokens.
+ * @param int $currScope A pointer to the start of the scope.
+ *
+ * @return void
+ */
+ protected function processTokenWithinScope(
+ PHP_CodeSniffer_File $phpcsFile,
+ $stackPtr,
+ $currScope
+ ) {
+ $className = $phpcsFile->getDeclarationName($currScope);
+ $methodName = $phpcsFile->getDeclarationName($stackPtr);
+
+ if (strcasecmp($methodName, $className) === 0) {
+ $error = 'PHP4 style constructors are discouraged; use "__construct()" instead';
+ $phpcsFile->addWarning($error, $stackPtr, 'OldStyle');
+ } else if (strcasecmp($methodName, '__construct') !== 0) {
+ // Not a constructor.
+ return;
+ }
+
+ $tokens = $phpcsFile->getTokens();
+
+ $parentClassName = $phpcsFile->findExtendedClassName($currScope);
+ if ($parentClassName === false) {
+ return;
+ }
+
+ $endFunctionIndex = $tokens[$stackPtr]['scope_closer'];
+ $startIndex = $stackPtr;
+ while ($doubleColonIndex = $phpcsFile->findNext(array(T_DOUBLE_COLON), $startIndex, $endFunctionIndex)) {
+ if ($tokens[($doubleColonIndex + 1)]['code'] === T_STRING
+ && $tokens[($doubleColonIndex + 1)]['content'] === $parentClassName
+ ) {
+ $error = 'PHP4 style calls to parent constructors are discouraged; use "parent::__construct()" instead';
+ $phpcsFile->addWarning($error, ($doubleColonIndex + 1), 'OldStyleCall');
+ }
+
+ $startIndex = ($doubleColonIndex + 1);
+ }
+
+ }//end processTokenWithinScope()
+
+
+}//end class
diff --git a/_cs/DokuWiki/ruleset.xml b/_cs/DokuWiki/ruleset.xml
index 4135c0860..bfbef87fe 100644
--- a/_cs/DokuWiki/ruleset.xml
+++ b/_cs/DokuWiki/ruleset.xml
@@ -2,52 +2,63 @@
<ruleset name="DokuWiki">
<description>DokuWiki Coding Standard</description>
- <rule ref="Generic.NamingConventions.ConstructorName" />
- <rule ref="Generic.Classes.DuplicateClassName" />
- <rule ref="Generic.CodeAnalysis.JumbledIncrementer" />
- <rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier" />
- <rule ref="Generic.CodeAnalysis.UnconditionalIfStatement" />
- <rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop" />
- <rule ref="Generic.CodeAnalysis.ForLoopWithTestFunctionCall" />
- <rule ref="Generic.CodeAnalysis.UnusedFunctionParameter" />
- <rule ref="Generic.CodeAnalysis.EmptyStatement" />
- <rule ref="Generic.CodeAnalysis.UselessOverridingMethod" />
- <rule ref="Generic.Commenting.Todo" />
- <ruke ref="Generic.Files.ByteOrderMark" />
- <rule ref="Generic.Files.LineEndings" />
- <rule ref="Generic.Formatting.DisallowMultipleStatements" />
- <rule ref="Generic.Metrics.NestingLevel" />
-<!-- <rule ref="Generic./Metrics/CyclomaticComplexity" /> //FIXME we might need to tune this first -->
- <rule ref="Generic.NamingConventions.UpperCaseConstantName" />
- <rule ref="Generic.PHP.LowerCaseConstant" />
- <rule ref="Generic.PHP.DeprecatedFunctions.php" />
- <rule ref="Generic.PHP.DisallowShortOpenTag" />
- <!-- Overridden rule ref="Generic.PHP.ForbiddenFunctions" /-->
- <rule ref="Generic.WhiteSpace.DisallowTabIndent" />
- <rule ref="Generic.Classes.DuplicateClassName" />
- <rule ref="Generic.Functions.CallTimePassByReference" />
- <rule ref="Zend.Files.ClosingTag" />
- <rule ref="PEAR.Functions.ValidDefaultValue" />
- <rule ref="Squiz.PHP.Eval" />
- <rule ref="Squiz.PHP.NonExecutableCode" />
-<!-- <rule ref="Squiz./PHP/CommentedOutCode" /> //FIXME should ignore oneliners -->
- <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace" />
- <rule ref="Squiz.PHP.NonExecutableCode" />
- <rule ref="Squiz.CSS.LowercaseStyleDefinition" />
- <rule ref="Squiz.CSS.MissingColon" />
- <rule ref="Squiz.CSS.DisallowMultipleStyleDefinitions" />
- <rule ref="Squiz.CSS.ColonSpacing" />
- <rule ref="Squiz.CSS.ClassDefinitionClosingBraceSpace" />
- <rule ref="Squiz.CSS.SemicolonSpacing" />
- <rule ref="Squiz.CSS.Indentation" />
- <rule ref="Squiz.CSS.EmptyClassDefinition" />
- <rule ref="Squiz.CSS.ClassDefinitionNameSpacing" />
- <rule ref="Squiz.CSS.EmptyStyleDefinition" />
- <rule ref="Squiz.CSS.Opacity" />
- <rule ref="Squiz.CSS.ColourDefinition" />
- <rule ref="Squiz.CSS.DuplicateClassDefinition" />
- <rule ref="Squiz.CSS.ClassDefinitionOpeningBraceSpace" />
+ <!-- ignore 3rd party libraries (that we haven't adopted) -->
+ <exclude-pattern>*/adLDAP.php</exclude-pattern>
+ <exclude-pattern>*/EmailAddressValidator.php</exclude-pattern>
+ <exclude-pattern>*/feedcreator.class.php</exclude-pattern>
+ <exclude-pattern>*/SimplePie.php</exclude-pattern>
+ <exclude-pattern>*/geshi.php</exclude-pattern>
+ <exclude-pattern>*/geshi/*</exclude-pattern>
+ <exclude-pattern>*/JSON.php</exclude-pattern>
- <rule ref="Squiz.Commenting.DocCommentAlignment" />
+ <!-- ignore devel only parts -->
+ <exclude-pattern>*/_test/*</exclude-pattern>
+ <exclude-pattern>*/_cs/*</exclude-pattern>
+
+ <rule ref="Generic.Classes.DuplicateClassName" />
+ <rule ref="Generic.CodeAnalysis.JumbledIncrementer" />
+ <rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier" />
+ <rule ref="Generic.CodeAnalysis.UnconditionalIfStatement" />
+ <rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop" />
+ <rule ref="Generic.CodeAnalysis.ForLoopWithTestFunctionCall" />
+ <rule ref="Generic.CodeAnalysis.UnusedFunctionParameter" />
+ <rule ref="Generic.CodeAnalysis.EmptyStatement" />
+ <rule ref="Generic.CodeAnalysis.UselessOverridingMethod" />
+ <rule ref="Generic.Commenting.Todo" />
+ <ruke ref="Generic.Files.ByteOrderMark" />
+ <rule ref="Generic.Files.LineEndings" />
+ <rule ref="Generic.Formatting.DisallowMultipleStatements" />
+ <rule ref="Generic.Metrics.NestingLevel">
+ <properties>
+ <property name="nestingLevel" value="6" />
+ </properties>
+ </rule>
+ <rule ref="Generic.NamingConventions.UpperCaseConstantName" />
+ <rule ref="Generic.PHP.LowerCaseConstant" />
+ <rule ref="Generic.PHP.DeprecatedFunctions.php" />
+ <rule ref="Generic.PHP.DisallowShortOpenTag" />
+ <rule ref="Generic.PHP.ForbiddenFunctions" />
+ <rule ref="Generic.WhiteSpace.DisallowTabIndent" />
+ <rule ref="Generic.Classes.DuplicateClassName" />
+ <rule ref="Generic.Functions.CallTimePassByReference" />
+ <rule ref="Zend.Files.ClosingTag" />
+ <rule ref="PEAR.Functions.ValidDefaultValue" />
+ <rule ref="Squiz.PHP.Eval" />
+ <rule ref="Squiz.WhiteSpace.SuperfluousWhitespace" />
+ <rule ref="Squiz.CSS.LowercaseStyleDefinition" />
+ <rule ref="Squiz.CSS.MissingColon" />
+ <rule ref="Squiz.CSS.DisallowMultipleStyleDefinitions" />
+ <rule ref="Squiz.CSS.ColonSpacing" />
+ <rule ref="Squiz.CSS.ClassDefinitionClosingBraceSpace" />
+ <rule ref="Squiz.CSS.SemicolonSpacing" />
+ <rule ref="Squiz.CSS.Indentation" />
+ <rule ref="Squiz.CSS.EmptyClassDefinition" />
+ <rule ref="Squiz.CSS.ClassDefinitionNameSpacing" />
+ <rule ref="Squiz.CSS.EmptyStyleDefinition" />
+ <rule ref="Squiz.CSS.Opacity" />
+ <rule ref="Squiz.CSS.ColourDefinition" />
+ <rule ref="Squiz.CSS.DuplicateClassDefinition" />
+ <rule ref="Squiz.CSS.ClassDefinitionOpeningBraceSpace" />
+ <rule ref="Squiz.Commenting.DocCommentAlignment" />
</ruleset>