/** * {@inheritdoc} */ public function convert(TargetInterface $target) { foreach ($this->configuration['function_calls'] as $function => $replace_with) { $function_calls = $target->getIndexer('function_call')->get($function); foreach ($function_calls as $function_call) { $rewritten = str_ireplace($function, $replace_with, $function_call->getText()); $node = Parser::parseExpression($rewritten); $function_call->replaceWith($node); $target->save($node); } } // Flush other open syntax trees to ensure that other plugins don't clobber // our changes later. $target->flush(); foreach ($target->getFinder() as $file) { // Load in the entire contents of the module. This is criminally inefficient // and wasteful of memory and should eventually be refactored into something // a little more...I dunno, sustainable. /** @var \Symfony\Component\Finder\SplFileInfo $file */ $search = array_keys($this->targets); $replace = array_values($this->targets); file_put_contents($file->getPathname(), str_replace($search, $replace, $file->getContents())); } }