/** * @param array $tokens */ protected function _handleTokens(TokenContainer $container, array $tokens) { foreach ($tokens as $start) { if ($container->contains($start)) { $result = $this->findTokens('IncludeAndRequire', $start, $container); $tokens = $result->getTokens(); foreach ($tokens as $token) { if ($container->contains($token)) { $container->removeToken($token); } } } } }
/** * @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::<protected> * @covers \PHP\Manipulator\TokenContainer::contains */ public function testContains() { $anotherToken = Token::factory('Blub'); $array = array(Token::factory('Blub'), Token::factory('Bla'), Token::factory('Foo'), Token::factory('BaaFoo')); $container = new TokenContainer($array); $this->assertTrue($container->contains($array[0])); $this->assertTrue($container->contains($array[1])); $this->assertTrue($container->contains($array[2])); $this->assertTrue($container->contains($array[3])); $this->assertFalse($container->contains($anotherToken)); unset($container[1]); unset($container[2]); $this->assertFalse($container->contains($array[1])); $this->assertFalse($container->contains($array[2])); }