/** * Run Action * * @param \PHP\Manipulator\TokenContainer $container */ public function run(TokenContainer $container) { $iterator = $container->getIterator(); while ($iterator->valid()) { $token = $iterator->current(); if ($this->isType($token, T_ELSEIF)) { $token->setType(T_ELSE); $token->setValue('else'); $whitespaceToken = new Token(' ', T_WHITESPACE); $ifToken = new Token('if', T_IF); $container->insertTokenAfter($token, $whitespaceToken); $container->insertTokenAfter($whitespaceToken, $ifToken); $iterator = $container->getIterator(); $iterator->seekToToken($ifToken); } $iterator->next(); } $container->retokenize(); }
/** * Format casts * * @param \PHP\Manipulator\TokenContainer $container * @param array $params */ public function run(TokenContainer $container) { $iterator = $container->getIterator(); $searchedTokens = $this->getOption('searchedTokens'); $whitespace = $this->getOption('whitespaceBehindCasts'); while ($iterator->valid()) { $token = $iterator->current(); if ($this->isType($token, array_keys($searchedTokens))) { $token->setValue($searchedTokens[$token->getType()]); $next = $iterator->getNext(); if ($this->isType($next, T_WHITESPACE)) { if ($next->getValue() != $whitespace) { $next->setValue($this->getOption('whitespaceBehindCasts')); } } elseif (!empty($whitespace)) { $container->insertTokenAfter($token, new Token($whitespace, T_WHITESPACE)); $iterator->update($token); } } $iterator->next(); } $container->retokenize(); }
/** * @covers \PHP\Manipulator\TokenContainer::insertTokenAfter * @covers \Exception */ public function testInsertTokenAfterThrowsExceptionIfAfterTokenNotExists() { $token1 = Token::factory('Token1'); $token2 = Token::factory('Token2'); $token3 = Token::factory('Token3'); $container = new TokenContainer(array($token1)); try { $container->insertTokenAfter($token2, $token3); $this->fail('Expected exception not thrown'); } catch (\Exception $e) { $this->assertEquals("Container does not contain Token: {$token2}", $e->getMessage(), 'Wrong exception message'); } }