The format of the array is:
array(
'scope' => 'public', // public private or protected
'is_static' => false, // true if the static keyword was found.
);
public getMemberProperties ( integer $stackPtr ) : array | ||
$stackPtr | integer | The position in the stack of the T_VARIABLE token to acquire the properties for. |
return | array |
/** * @param PHP_CodeSniffer_File $phpcsFile * @param int $stackPtr * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); $public = $memberProps['scope'] === 'public'; if ($public === TRUE) { if (substr($varName, 0, 1) === '_') { $error = 'Public member variable "%s" must not contain a leading underscore'; $data = array($varName); $phpcsFile->addError($error, $stackPtr, 'PublicHasUnderscore', $data); return; } } else { // private return; // if (substr($varName, 0, 1) !== '_') { // $scope = ucfirst($memberProps['scope']); // $error = '%s member variable "%s" must contain a leading underscore'; // $data = array( // $scope, // $varName, // ); // $phpcsFile->addError($error, $stackPtr, 'PrivateNoUnderscore', $data); // return; // } } if (PHP_CodeSniffer::isCamelCaps($varName, FALSE, $public, FALSE) === FALSE) { $error = 'Variable "%s" is not in valid camel caps format'; $data = array($varName); $phpcsFile->addError($error, $stackPtr, 'MemberVarNotCamelCaps', $data); } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { // FIXME - incompatible with the "camel case" notation return; $tokens = $phpcsFile->getTokens(); $memberProps = $phpcsFile->getMemberProperties($stackPtr); if (empty($memberProps) === true) { return; } $memberName = ltrim($tokens[$stackPtr]['content'], '$'); $isPublic = $memberProps['scope'] === 'private' ? false : true; $scope = $memberProps['scope']; $scopeSpecified = $memberProps['scope_specified']; // If it's a private member, it must have an underscore on the front. if ($isPublic === false && $memberName[0] !== '_') { $error = "Private member variable \"{$memberName}\" must be prefixed with an underscore"; $phpcsFile->addError($this->getReqPrefix('?') . $error, $stackPtr); return; } // If it's not a private member, it must not have an underscore on the front. if ($isPublic === true && $scopeSpecified === true && $memberName[0] === '_') { $error = ucfirst($scope) . " member variable \"{$memberName}\" must not be prefixed with an underscore"; $phpcsFile->addError($this->getReqPrefix('?') . $error, $stackPtr); return; } $this->processVariable($phpcsFile, $stackPtr); }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); if (empty($memberProps) === true) { // Couldn't get any info about this variable, which // generally means it is invalid or possibly has a parse // error. Any errors will be reported by the core, so // we can ignore it. return; } $public = $memberProps['scope'] !== 'private'; $errorData = array($varName); if ($varName === '_id') { return; } // allow \MongoId() if (substr($varName, 0, 1) === '_') { $error = '%s member variable "%s" must not contain a leading underscore'; $data = array(ucfirst($memberProps['scope']), $errorData[0]); $phpcsFile->addError($error, $stackPtr, 'PublicHasUnderscore', $data); return; } if (PHP_CodeSniffer::isCamelCaps($varName, false, true, false) === false) { $error = 'Variable "%s" is not in valid camel caps format' . $varName; $phpcsFile->addError($error, $stackPtr, 'MemberNotCamelCaps', $errorData); } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $memberProps = $phpcsFile->getMemberProperties($stackPtr); if (empty($memberProps) === true) { return; } $memberName = ltrim($tokens[$stackPtr]['content'], '$'); $isPublic = $memberProps['scope'] === 'private' ? false : true; $scope = $memberProps['scope']; $scopeSpecified = $memberProps['scope_specified']; // Even if it's a private member, it must not have an underscore on the // front. if ($isPublic === false && $memberName[0] === '_') { $error = "Private member variable \"{$memberName}\" must not be\n \tprefixed with an underscore - it is discouraged in PHP 5-specific code"; $phpcsFile->addError($error, $stackPtr); return; } // If it's not a private member, it must not have an underscore on the front. if ($isPublic === true && $scopeSpecified === true && $memberName[0] === '_') { $error = ucfirst($scope) . " member variable \"{$memberName}\" must not be\n prefixed with an underscore"; $phpcsFile->addError($error, $stackPtr); return; } if (strpos($memberName, '_') !== false) { $error = 'Class property %s should use lowerCamel naming without underscores'; $data = array($tokens[$stackPtr]['content']); $phpcsFile->addError($error, $stackPtr, 'LowerCamelName', $data); } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $memberProps = $phpcsFile->getMemberProperties($stackPtr); if (empty($memberProps) === true) { return; } $memberName = ltrim($tokens[$stackPtr]['content'], '$'); $isPublic = $memberProps['scope'] === 'private' ? false : true; $scope = $memberProps['scope']; $scopeSpecified = $memberProps['scope_specified']; // If it's a private member, it must have an underscore on the front. if ($isPublic === false && $memberName[0] !== '_') { $error = 'Private member variable "%s" must be prefixed with an underscore'; $data = array($memberName); $phpcsFile->addError($error, $stackPtr, 'PrivateNoUnderscore', $data); return; } // If it's not a private member, it must not have an underscore on the front. if ($isPublic === true && $scopeSpecified === true && $memberName[0] === '_') { $error = '%s member variable "%s" must not be prefixed with an underscore'; $data = array(ucfirst($scope), $memberName); $phpcsFile->addError($error, $stackPtr, 'PublicUnderscore', $data); return; } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $memberProps = $phpcsFile->getMemberProperties($stackPtr); if (empty($memberProps) === true) { return; } $memberName = ltrim($tokens[$stackPtr]['content'], '$'); $isPublic = $memberProps['scope'] === 'private' ? false : true; $scope = $memberProps['scope']; $scopeSpecified = $memberProps['scope_specified']; // If it's a private member, it must have an underscore on the front. /*if ($isPublic === false && $memberName{0} !== '_') { $error = "Private member variable \"$memberName\" must be prefixed with an underscore"; $phpcsFile->addError($error, $stackPtr); return; }*/ // Even if it's a private member, it must have an underscore on the front. if ($isPublic === false && $memberName[0] === '_') { $error = "Private member variable \"{$memberName}\" must not be\n \tprefixed with an underscore - it is discouraged in PHP 5-specific code"; $phpcsFile->addError($error, $stackPtr); return; } // If it's not a private member, it must not have an underscore on the front. if ($isPublic === true && $scopeSpecified === true && $memberName[0] === '_') { $error = ucfirst($scope) . " member variable \"{$memberName}\" must not be\n prefixed with an underscore"; $phpcsFile->addError($error, $stackPtr); return; } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token in the stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $memberProps = $phpcsFile->getMemberProperties($stackPtr); if (empty($memberProps) === true) { return; } $this->processVariableNameCheck($phpcsFile, $stackPtr, 'member '); }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $memberProps = $phpcsFile->getMemberProperties($stackPtr); if (empty($memberProps) === true) { return; } $memberName = ltrim($tokens[$stackPtr]['content'], '$'); if (strpos($memberName, '_') !== false) { $error = 'Class property %s should use lowerCamel naming without underscores'; $data = array($tokens[$stackPtr]['content']); $phpcsFile->addError($error, $stackPtr, 'LowerCamelName', $data); } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); $public = $memberProps['scope'] === 'public'; $private = $memberProps['scope'] === 'private'; if ($public === true) { if (substr($varName, 0, 1) === '_') { $error = 'Public member variable "%s" must not contain a leading underscore'; $data = [$varName]; $phpcsFile->addError($error, $stackPtr, 'PublicHasUnderscore', $data); return; } } elseif ($private === true) { if (substr($varName, 0, 2) === '__') { $error = 'Private member variable "%s" must not contain two leading underscores'; $data = [$varName]; $phpcsFile->addError($error, $stackPtr, 'PrivateWithUnderscore', $data); return; } $filename = $phpcsFile->getFilename(); if (strpos($filename, '/lib/Cake/') !== false) { $warning = 'Private variable "%s" in CakePHP core is discouraged'; $data = [$varName]; $phpcsFile->addWarning($warning, $stackPtr, 'PrivateInCore', $data); } } else { // protected var if (substr($varName, 0, 1) == '_') { $error = 'Protected member variable "%s" must not contain a leading underscore'; $data = [$varName]; $phpcsFile->addError($error, $stackPtr, 'ProtectedUnderscore', $data); return; } } $conditions = array_keys($tokens[$stackPtr]['conditions']); $className = $phpcsFile->getDeclarationName(array_pop($conditions)); // Schema properties are allowed to not be CamelCase. if (substr($className, -6) === 'Schema') { return; } if ($this->isValidVar($varName, $public) === false) { $error = 'Member variable "%s" is not in valid camel caps format'; $data = [$varName]; $phpcsFile->addError($error, $stackPtr, 'MemberVarNotCamelCaps', $data); } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $memberProps = $phpcsFile->getMemberProperties($stackPtr); if (empty($memberProps) === true) { return; } $memberName = ltrim($tokens[$stackPtr]['content'], '$'); $isPublic = $memberProps['scope'] === 'private' ? false : true; $scope = $memberProps['scope']; $scopeSpecified = $memberProps['scope_specified']; // Detect if it is marked deprecated $find = array(T_COMMENT, T_DOC_COMMENT, T_CLASS, T_FUNCTION, T_OPEN_TAG); $tokens = $phpcsFile->getTokens(); $commentEnd = $phpcsFile->findPrevious($find, $stackPtr - 1); if ($commentEnd !== false && $tokens[$commentEnd]['code'] === T_DOC_COMMENT) { $commentStart = $phpcsFile->findPrevious(T_DOC_COMMENT, $commentEnd - 1, null, true) + 1; $comment = $phpcsFile->getTokensAsString($commentStart, $commentEnd - $commentStart + 1); try { $this->commentParser = new PHP_CodeSniffer_CommentParser_FunctionCommentParser($comment, $phpcsFile); $this->commentParser->parse(); } catch (PHP_CodeSniffer_CommentParser_ParserException $e) { $line = $e->getLineWithinComment() + $commentStart; $phpcsFile->addError($e->getMessage(), $line, 'FailedParse'); return; } $deprecated = $this->commentParser->getDeprecated(); $isDeprecated = !is_null($deprecated); } else { $isDeprecated = false; } // If it's a private member, it must have an underscore on the front. if ($isPublic === false && $memberName[0] !== '_') { $error = 'Private member variable "%s" must be prefixed with an underscore'; $data = array($memberName); $phpcsFile->addError($error, $stackPtr, 'PrivateNoUnderscore', $data); return; } // If it's not a private member, it must not have an underscore on the front. if ($isDeprecated === false && $isPublic === true && $scopeSpecified === true && $memberName[0] === '_') { $error = '%s member variable "%s" must not be prefixed with an underscore'; $data = array(ucfirst($scope), $memberName); // AJE Changed from error to warning. $phpcsFile->addWarning($error, $stackPtr, 'PublicUnderscore', $data); return; } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { // get variable name and properties $tokens = $phpcsFile->getTokens(); $varTk = $tokens[$stackPtr]; $varName = substr($varTk['content'], 1); $varProps = $phpcsFile->getMemberProperties($stackPtr); // check(s) if (!$this->checkLowerCase($phpcsFile, $stackPtr, $varName)) { return; } if (!$this->checkVisibilityPrefix($phpcsFile, $stackPtr, $varName, $varProps)) { return; } if (!$this->checkLength($phpcsFile, $stackPtr, $varName)) { return; } }
protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { // copied code from parent class $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); if (empty($memberProps) === true) { // Couldn't get any info about this variable, which // generally means it is invalid or possibly has a parse // error. Any errors will be reported by the core, so // we can ignore it. return; } // end of copied code // always validate as if the member variable is public $public = true; $errorData = array($varName); if (PHP_CodeSniffer::isCamelCaps($varName, false, $public, false) === false) { $error = 'Variable "%s" is not in valid camel caps format'; $phpcsFile->addError($error, $stackPtr, 'MemberNotCamelCaps', $errorData); } }
protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); $public = $memberProps['scope'] === 'public'; if ($public === true) { if (substr($varName, 0, 1) === '_') { $error = 'Public member variable "%s" must not contain a leading underscore'; $data = array($varName); $phpcsFile->addError($error, $stackPtr, 'PublicHasUnderscore', $data); return; } } else { if (substr($varName, 0, 1) !== '_') { $scope = ucfirst($memberProps['scope']); $error = '%s member variable "%s" must contain a leading underscore'; $data = array($scope, $varName); $phpcsFile->addError($error, $stackPtr, 'PrivateNoUnderscore', $data); return; } } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token * in the stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $memberProps = $phpcsFile->getMemberProperties($stackPtr); if (empty($memberProps) === true) { return; } $memberName = ltrim($tokens[$stackPtr]['content'], '$'); $isPublic = $memberProps['scope'] === 'private' ? false : true; $scope = $memberProps['scope']; $scopeSpecified = $memberProps['scope_specified']; /* In PHP5, there's no need for the underscore to label private * methods. Instead, the underscore in Joomla is used to distinguish * native table properties from derived properties. * // If it's a private member, it must have an underscore on the front. if ($isPublic === false && $memberName{0} !== '_') { $error = 'Private member variable "%s" must be prefixed with an underscore'; $data = array($memberName); $phpcsFile->addError($error, $stackPtr, 'PrivateNoUnderscore', $data); return; } // If it's not a private member, it must not have an underscore on the front. if ($isPublic === true && $scopeSpecified === true && $memberName{0} === '_') { $error = '%s member variable "%s" must not be prefixed with an underscore'; $data = array( ucfirst($scope), $memberName, ); // AJE Changed from error to warning. $phpcsFile->addWarning($error, $stackPtr, 'PublicUnderscore', $data); return; } */ }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcs_file The file being scanned. * @param int $stack_ptr The position of the current token in the * stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcs_file, $stack_ptr) { $tokens = $phpcs_file->getTokens(); $var_name = ltrim($tokens[$stack_ptr]['content'], '$'); $member_props = $phpcs_file->getMemberProperties($stack_ptr); if (empty($member_props) === true) { // Couldn't get any info about this variable, which // generally means it is invalid or possibly has a parse // error. Any errors will be reported by the core, so // we can ignore it. return; } $error_data = array($var_name); if (!in_array($var_name, $this->whitelisted_mixed_case_member_var_names, true) && self::isSnakeCase($var_name) === false) { $error = 'Member variable "%s" is not in valid snake_case format.'; $phpcs_file->addError($error, $stack_ptr, 'MemberNotSnakeCase', $error_data); } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); $public = $memberProps['scope'] === 'public'; if ($public === true) { if (substr($varName, 0, 1) === '_') { //$error = "Public member variable \"$varName\" must not contain a leading underscore"; //$phpcsFile->addError($error, $stackPtr); $error = 'Public member variable ' . $varName . ' must not contain a leading underscore'; $phpcsFile->addEvent('XP_VALID_VARIABLE_NAME_NOT_CONTAIN_LEADING_UNDERSCORE', array('message' => $error), $stackPtr); return; } } /* else { if (substr($varName, 0, 1) !== '_') { $scope = ucfirst($memberProps['scope']); $error = "$scope member variable \"$varName\" must contain a leading underscore"; $phpcsFile->addError($error, $stackPtr); return; } } */ // if (PHP_CodeSniffer::isCamelCaps($varName, false, $public, false) === false) { if (PHP_CodeSniffer::isCamelCaps($varName, false, true, false) === false) { //$error = "Variable \"$varName\" is not in valid camel caps format"; //$phpcsFile->addError($error, $stackPtr); $error = 'Variable ' . $varName . ' is not in valid camel caps format'; $phpcsFile->addEvent('XP_VALID_VARIABLE_NAME_NOT_IN_CAMEL_CAPS_FORMAT', array('message' => $error), $stackPtr); } else { if (preg_match('|\\d|', $varName)) { //$warning = "Variable \"$varName\" contains numbers but this is discouraged"; //$phpcsFile->addWarning($warning, $stackPtr); $error = 'Variable ' . $varName . ' contains numbers but this is discouraged'; $phpcsFile->addEvent('XP_VALID_VARIABLE_NAME_CONTAINS_NUMBERS', array('message' => $error), $stackPtr); } } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); $public = true; if (PHP_CodeSniffer::isCamelCaps($varName, false, $public, false) === false) { $error = 'Member variable "%s" is not in valid camel caps format'; $data = array($varName); $phpcsFile->addError($error, $stackPtr, 'MemberVarNotCamelCaps', $data); } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); $public = $memberProps['scope'] === 'public'; if ($public === true) { if (substr($varName, 0, 1) === '_') { $error = 'Public member variable "%s" must not contain a leading underscore'; $data = array($varName); $phpcsFile->addError($error, $stackPtr, 'PublicHasUnderscore', $data); return; } } else { if (substr($varName, 0, 1) !== '_') { $scope = ucfirst($memberProps['scope']); $error = '%s member variable "%s" must contain a leading underscore'; $data = array($scope, $varName); $phpcsFile->addError($error, $stackPtr, 'PrivateNoUnderscore', $data); return; } } if (PHP_CodeSniffer::isCamelCaps($varName, false, $public, false) === false) { $error = 'Member variable "%s" is not in valid camel caps format'; $data = array($varName); $phpcsFile->addError($error, $stackPtr, 'MemberVarNotCamelCaps', $data); } else { if (preg_match('|\\d|', $varName)) { $warning = 'Member variable "%s" contains numbers but this is discouraged'; $data = array($varName); $phpcsFile->addWarning($warning, $stackPtr, 'MemberVarContainsNumbers', $data); } } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); $private = $memberProps['scope'] === 'private'; if ($private === true) { $error = "Private member variables are prohibited, change scope of variable \"{$varName}\" to protected"; $phpcsFile->addError($error, $stackPtr); return; } if (false === self::isUnderScores($varName)) { $error = "Variable \"{$varName}\" is not in valid under_scores format"; $phpcsFile->addError($error, $stackPtr); } else { if (preg_match('|\\d|', $varName)) { $warning = "Variable \"{$varName}\" contains numbers but this is discouraged"; $phpcsFile->addWarning($warning, $stackPtr); } } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); if (empty($memberProps) === true) { // Couldn't get any info about this variable, which // generally means it is invalid or possibly has a parse // error. Any errors will be reported by the core, so // we can ignore it. return; } $errorData = array($varName); if ($memberProps['is_static'] && preg_match(self::$camelcase, $varName) || !$memberProps['is_static'] && preg_match(self::$underscore_var, $varName) === 0) { $error = 'Variable "%s" is not in valid underscore format'; $phpcsFile->addError($error, $stackPtr, 'MemberNotUnderscore', $errorData); } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); $public = $memberProps['scope'] !== 'private'; if ($memberProps['is_static']) { if (!PHP_CodeSniffer_Standards_Silverstripe_SilverstripeCodingStandard::isLowerCaseWithUnderScore($varName)) { $error = "Variable name \"{$varName}\" is invalid Static variables should be self::lowercase_with_underscores() format."; $phpcsFile->addError($error, $stackPtr); return; } } else { if (PHP_CodeSniffer::isCamelCaps($varName, false, $public, false) === false) { $error = "Variable \"{$varName}\" is not in valid camel caps format"; $phpcsFile->addError($error, $stackPtr); } } }
/** * Processes class member variables * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned * @param integer $stackPtr The position of the current token in the stack passed in $tokens * @return void */ public function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); $public = $memberProps['scope'] === 'public'; if ($public === true) { if (substr($varName, 0, 1) === '_') { $error = "Public member variable \"{$varName}\" must not contain a leading underscore"; $phpcsFile->addError($error, $stackPtr); return; } } else { if (substr($varName, 0, 1) !== '_') { $scope = ucfirst($memberProps['scope']); $error = "{$scope} member variable \"{$varName}\" must contain a leading underscore"; $phpcsFile->addError($error, $stackPtr); return; } } if (PHP_CodeSniffer::isCamelCaps($varName, false, $public, false) === false) { $error = "Variable \"{$varName}\" is not in valid camel caps format"; $phpcsFile->addError($error, $stackPtr); } else { if (preg_match('|\\d|', $varName) === true) { $warning = "Variable \"{$varName}\" contains numbers but this is discouraged"; $phpcsFile->addWarning($warning, $stackPtr); } } }
/** * Processes class member variables * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned * @param integer $stackPtr The position of the current token in the stack passed in $tokens * @return void */ public function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); $public = $memberProps['scope'] === 'public'; // SQLI : les premier caractère ne doit pas être un underscore if (substr($varName, 0, 1) === '_') { $phpcsFile->addEvent('NO_START_UNDERSCORE_VALID_VARIABLE', array('varname' => $varName), $stackPtr); return; } // SQLI : les premier caractère ne doit pas être un underscore // if ($public === true) { // if (substr($varName, 0, 1) === '_') { // $error = "Public member variable \"$varName\" must not contain a leading underscore"; // $phpcsFile->addError($error, $stackPtr); // return; // } // } else { // if (substr($varName, 0, 1) !== '_') { // $scope = ucfirst($memberProps['scope']); // $error = "$scope member variable \"$varName\" must contain a leading underscore"; // $phpcsFile->addError($error, $stackPtr); // return; // } // } if (PHP_CodeSniffer::isCamelCaps($varName, false, true, false) === false) { $phpcsFile->addEvent('ATTR_NOT_VALID_CAMEL_VALID_VARIABLE', array('varname' => $varName), $stackPtr); } else { if (preg_match('|\\d|', $varName)) { $phpcsFile->addEvent('CONTAINS_NUMBER_VALID_VARIABLE', array('varname' => $varName), $stackPtr); } } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); if (empty($memberProps) === true) { // Couldn't get any info about this variable, which // generally means it is invalid or possibly has a parse // error. Any errors will be reported by the core, so // we can ignore it. return; } $public = $memberProps['scope'] !== 'private'; $errorData = array($varName); if (substr($varName, 0, 1) === '_') { $error = '%s member variable "%s" must not contain a leading underscore'; $data = array(ucfirst($memberProps['scope']), $errorData[0]); $phpcsFile->addError($error, $stackPtr, 'PublicHasUnderscore', $data); return; } // isCamelCaps erwartet als drittes Parameter public oder nicht und wenn nicht dann will er einen "_" am // Anfang der Variable haben, das wollen wir nicht, deswegen wird true übergeben if (PHP_CodeSniffer::isCamelCaps($varName, false, true, $this->strictCamelCase) === false) { $error = 'Variable "%s" is not in valid camel caps format'; $phpcsFile->addError($error, $stackPtr, 'MemberNotCamelCaps', $errorData); } }
/** * Processes class member variables * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned * @param integer $stackPtr The position of the current token in the stack passed in $tokens * @return void */ public function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); $public = $memberProps['scope'] === 'public'; // SQLI : les premier caractère ne doit pas être un underscore if (substr($varName, 0, 1) === '_') { $phpcsFile->addError('La variable de classe "' . $varName . '" ne doit pas commencer par un underscore', $stackPtr, 'NoStartUnderscoreValidVariable'); return; } // SQLI : les premier caractère ne doit pas être un underscore // if ($public === true) { // if (substr($varName, 0, 1) === '_') { // $error = "Public member variable \"$varName\" must not contain a leading underscore"; // $phpcsFile->addError($error, $stackPtr); // return; // } // } else { // if (substr($varName, 0, 1) !== '_') { // $scope = ucfirst($memberProps['scope']); // $error = "$scope member variable \"$varName\" must contain a leading underscore"; // $phpcsFile->addError($error, $stackPtr); // return; // } // } if (PHP_CodeSniffer::isCamelCaps($varName, false, true, false) === false) { $phpcsFile->addError('Le nom d\'attribut d\'instance "' . $varName . '" n\'est pas au format camelCase', $stackPtr, 'AttrNotValidCamelValidVariable'); } else { if (preg_match('|\\d|', $varName)) { $phpcsFile->addWarning('La variable "' . $varName . '" contient des chiffres, cela n\'est pas encouragé', $stackPtr, 'ContainsNumberValidVariable'); } } }
/** * Processes class member variables. * * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the current token in the * stack passed in $tokens. * * @return void */ protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); $varName = ltrim($tokens[$stackPtr]['content'], '$'); $memberProps = $phpcsFile->getMemberProperties($stackPtr); $public = $memberProps['scope'] !== 'private'; if ($public === true) { if (substr($varName, 0, 1) === '_') { $scope = ucfirst($memberProps['scope']); $error = "{$scope} member variable \"{$varName}\" must not contain a leading underscore"; $phpcsFile->addError($error, $stackPtr); return; } } else { if (substr($varName, 0, 1) !== '_') { $error = "Private member variable \"{$varName}\" must contain a leading underscore"; $phpcsFile->addError($error, $stackPtr); return; } } if (PHP_CodeSniffer::isCamelCaps($varName, false, $public) === false) { $error = "Variable \"{$varName}\" is not in valid camel caps format"; $phpcsFile->addError($error, $stackPtr); } }