/** * @param \PHP\Manipulator\Token $token * @return \PHP\Manipulator\TokenContainer\Iterator *Provides Fluent Interface* */ public function seekToToken(Token $token) { if ($this->valid() && $this->current() === $token) { return $this; } $key = $this->_container->getOffsetByToken($token); $this->seek($key); return $this; }
/** * @param \PHP\Manipulator\TokenContainer $container * @param mixed $params */ public function run(TokenContainer $container, Token $from, Token $to) { if (!$container->contains($from)) { $message = "element 'from' not found in \$container"; throw new \Exception($message); } if (!$container->contains($to)) { $message = "element 'to' not found in \$container"; throw new \Exception($message); } $startOffset = $container->getOffsetByToken($from); $endOffset = $container->getOffsetByToken($to); if ($startOffset > $endOffset) { $message = 'startOffset is behind endOffset'; throw new \Exception($message); } $tokens = $this->_getTokensFromStartToEnd($container, $startOffset, $endOffset); $value = $this->_mergeTokenValuesIntoString($tokens); $value = '/*' . $value . '*/'; $commentToken = new Token($value, T_COMMENT); $container->insertAtOffset($startOffset, $commentToken); $container->removeTokens($tokens); }
/** * @covers \PHP\Manipulator\TokenContainer::insertTokensAfter */ public function testInsertTokensAfter() { $token1 = Token::factory('Token1'); $token2 = Token::factory('Token2'); $token3 = Token::factory('Token3'); $container = new TokenContainer(array($token1)); $container->insertTokensAfter($token1, array($token3, $token2)); $this->assertEquals(0, $container->getOffsetByToken($token1)); $this->assertEquals(1, $container->getOffsetByToken($token3)); $this->assertEquals(2, $container->getOffsetByToken($token2)); }