seekTokenType() public method

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.
public seekTokenType ( mixed $type, boolean $backwards = false, mixed $stopper = null ) : boolean
$type mixed
$backwards boolean
$stopper mixed
return boolean
Example #1
0
 /**
  * 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));
     }
 }
Example #2
0
 /**
  * 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));
     }
 }
Example #3
0
 /**
  * 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));
     }
 }