Returns true on success and false if the token can not be found. Seeking
starts from current element. If the current token matches the given type,
the position is not changed. In case a stopper is supplied, the seeking
will stop at the given token.
/** * visitToken(): defined by TokenRuleInterface. * * @see TokenRuleInterface::visitToken() * @param File $file * @return void */ public function visitToken(File $file) { if (!$file->seekTokenType(T_STRING, false, ';')) { return; } $token = $file->current(); if (!preg_match('(^' . $this->format . '$)', $token->getLexeme())) { $this->addViolation($file, $token->getLine(), $token->getColumn(), sprintf('Constant name does not match format "%s"', $this->format)); } }
/** * visitToken(): defined by TokenRuleInterface. * * @see TokenRuleInterface::visitToken() * @param File $file * @return void */ public function visitToken(File $file) { if (!$file->seekTokenType(T_STRING, false, '(')) { return; } $token = $file->current(); if (!in_array($token->getLexeme(), self::$magicMethods) && !preg_match('(^' . $this->format . '$)', $token->getLexeme())) { $this->addViolation($file, $token->getLine(), $token->getColumn(), sprintf('Method name does not match format "%s"', $this->format)); } }
/** * visitToken(): defined by TokenRuleInterface. * * @see TokenRuleInterface::visitToken() * @param File $file * @return void */ public function visitToken(File $file) { if (!$file->seekTokenType(T_STRING, false, '{')) { return; } $token = $file->current(); $psr0Compliant = true; if ($token->getNamespace() !== null) { $fqcn = $token->getNamespace() . '\\' . $token->getLexeme(); $path = str_replace('\\', '/', $token->getNamespace()) . '/' . str_replace('_', '/', $token->getLexeme()); } else { $fqcn = $token->getLexeme(); $path = str_replace('_', '/', $token->getLexeme()); if ($this->requireVendorNamespace) { $psr0Compliant = false; } } if ($psr0Compliant) { $expectedPathParts = array_diff(explode('/', $path), array('')); $expectedFilename = array_pop($expectedPathParts) . '.php'; $pathParts = explode('/', str_replace('\\', '/', realpath($file->getFilename()))); $filename = array_pop($pathParts); if ($filename !== $expectedFilename) { // Class name should match filename. $psr0Compliant = false; } elseif (count($expectedPathParts) === 0) { // Vendor level namespace required. $psr0Compliant = false; } else { // Path should match namespace structure. $pathParts = array_slice($pathParts, -count($expectedPathParts)); if ($pathParts !== $expectedPathParts) { $psr0Compliant = false; } } } if (!$psr0Compliant) { $this->addViolation($file, $token->getLine(), $token->getColumn(), sprintf('Class name "%s" is not PSR0 compliant', $fqcn)); } }