/**
  * @param Iterator $iterator
  * @param array $whitespace
  */
 public function setWhitespace(Iterator $iterator, array $whitespace)
 {
     $token = $iterator->current();
     $this->_moveIteratorToTargetToken($iterator);
     $targetToken = $iterator->current();
     $tokenValue = $this->getWhitespaceForToken($token, $whitespace);
     $containerChanger = false;
     if (null !== $targetToken) {
         if ($this->isType($targetToken, T_WHITESPACE)) {
             if (empty($tokenValue)) {
                 $this->_container->removeToken($targetToken);
                 $containerChanger = true;
             } else {
                 $targetToken->setValue($tokenValue);
             }
         } else {
             if (!empty($tokenValue)) {
                 $newToken = Token::factory(array(T_WHITESPACE, $tokenValue));
                 $this->_insertToken($newToken, $iterator);
                 $containerChanger = true;
             }
         }
     }
     $this->_moveIteratorBackFromTagetToken($iterator);
     if (true === $containerChanger) {
         $iterator->update($iterator->current());
     }
 }
 /**
  * Remove unneded ?> from the file-end
  *
  * @param \PHP\Manipulator\TokenContainer $container
  * @param mixed $params
  */
 public function run(TokenContainer $container)
 {
     $stripWhitespaceFromEnd = $this->getOption('stripWhitespaceFromEnd');
     $iterator = $container->getReverseIterator();
     $helper = new NewlineDetector("\n");
     while ($iterator->valid()) {
         $token = $iterator->current();
         if (!$this->_isNotAllowedTag($token)) {
             break;
         } elseif ($this->isType($token, T_CLOSE_TAG)) {
             if ($this->evaluateConstraint('EndsWithNewline', $token)) {
                 $newline = $helper->getNewlineFromToken($token);
                 $token->setType(T_WHITESPACE);
                 $token->setValue($newline);
             } else {
                 $container->removeToken($token);
             }
             break;
         }
         $iterator->next();
     }
     $container->retokenize();
     if (true === $stripWhitespaceFromEnd) {
         $this->runAction('RemoveWhitespaceFromEnd', $container);
     }
 }
 /**
  * Remove ErrorControlOperators (@)
  *
  * @param \PHP\Manipulator\TokenContainer $container
  * @param mixed $params
  */
 public function run(TokenContainer $container)
 {
     $iterator = $container->getIterator();
     while ($iterator->valid()) {
         $token = $iterator->current();
         if ($this->evaluateConstraint('IsErrorControlOperator', $token)) {
             $container->removeToken($token);
         }
         $iterator->next();
     }
     $container->retokenize();
 }
 /**
  * Remove Whitespace from the end
  *
  * @param \PHP\Manipulator\TokenContainer $container
  * @param mixed $params
  */
 public function run(TokenContainer $container)
 {
     $iterator = $container->getReverseIterator();
     while ($iterator->valid()) {
         $token = $iterator->current();
         if ($this->isType($token, T_WHITESPACE)) {
             $container->removeToken($token);
         } elseif ($this->isType($token, T_INLINE_HTML)) {
             if ($this->evaluateConstraint('ContainsOnlyWhitespace', $token)) {
                 $container->removeToken($token);
             } else {
                 $token->setValue(rtrim($token->getValue()));
                 break;
             }
         } else {
             $token->setValue(rtrim($token->getValue()));
             break;
         }
         $iterator->next();
     }
     $container->retokenize();
 }
Пример #5
0
 /**
  * @covers \PHP\Manipulator\TokenContainer::removeToken
  */
 public function testRemoveToken()
 {
     $token1 = Token::factory('Token1');
     $token2 = Token::factory('Token2');
     $token3 = Token::factory('Token3');
     $container = new TokenContainer();
     $container[] = $token1;
     $container[] = $token2;
     $container[] = $token3;
     $fluent = $container->removeToken($token2);
     $this->assertSame($fluent, $container, 'No fluent interface');
     $this->assertCount(2, $container, 'Wrong count of Tokens in Container');
     $this->assertTrue($container->contains($token1), 'Container contains Token1');
     $this->assertTrue($container->contains($token3), 'Container contains Token3');
     $this->assertFalse($container->contains($token2), 'Container not contains Token2');
 }
Пример #6
0
 /**
  * @param \PHP\Manipulator\TokenContainer $container
  * @param array $argumentTokens
  */
 protected function _parseSingleArgument(array $argumentTokens, $container)
 {
     foreach ($argumentTokens as $token) {
         if ('=' === $token->getValue()) {
             break;
         }
         if ($this->isType($token, array(T_STRING, T_ARRAY, T_NS_SEPARATOR))) {
             $container->removeToken($token);
         }
     }
 }