code: protected function applyFix(\SplFileInfo $file, Tokens $tokens)
      {
          $functionsAnalyzer = new FunctionsAnalyzer();
  
          foreach ($tokens as $index => $token) {
              if (!$tokens[$index]->equals([T_STRING, 'implode'], false)) {
                  continue;
              }
  
              if (!$functionsAnalyzer->isGlobalFunctionCall($tokens, $index)) {
                  continue;
              }
  
              $argumentsIndices = $this->getArgumentIndices($tokens, $index);
  
              if (1 === \count($argumentsIndices)) {
                  $firstArgumentIndex = key($argumentsIndices);
                  $tokens->insertAt($firstArgumentIndex, [
                      new Token([T_CONSTANT_ENCAPSED_STRING, "''"]),
                      new Token(','),
                      new Token([T_WHITESPACE, ' ']),
                  ]);
  
                  continue;
              }
  
              if (2 === \count($argumentsIndices)) {
                  list($firstArgumentIndex, $secondArgumentIndex) = array_keys($argumentsIndices);
  
                  // If the first argument is string we have nothing to do
                  if ($tokens[$firstArgumentIndex]->isGivenKind(T_CONSTANT_ENCAPSED_STRING)) {
                      continue;
                  }
                  // If the second argument is not string we cannot make a swap
                  if (!$tokens[$secondArgumentIndex]->isGivenKind(T_CONSTANT_ENCAPSED_STRING)) {
                      continue;
                  }
  
                  // collect tokens from first argument
                  $firstArgumentEndIndex = $argumentsIndices[key($argumentsIndices)];
                  $newSecondArgumentTokens = [];
                  for ($i = key($argumentsIndices); $i <= $firstArgumentEndIndex; ++$i) {
                      $newSecondArgumentTokens[] = clone $tokens[$i];
                      $tokens->clearAt($i);
                  }
  
                  $tokens->insertAt($firstArgumentIndex, clone $tokens[$secondArgumentIndex]);
  
                  // insert above increased the second argument index
                  ++$secondArgumentIndex;
                  $tokens->clearAt($secondArgumentIndex);
                  $tokens->insertAt($secondArgumentIndex, $newSecondArgumentTokens);
              }
          }
      }
docs: {@inheritdoc}