public function __construct($sourceDir, $destinationDir = false, $output = false)
 {
     if (!$destinationDir) {
         $destinationDir = $sourceDir;
     }
     $backporter = new Backporter();
     $iterator = new \CallbackFilterIterator(new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($sourceDir)), function ($file) {
         return $file;
     });
     foreach ($iterator as $file) {
         $newPath = preg_replace("#^{$sourceDir}#", $destinationDir, $file);
         if ($file->isDir() && !file_exists($newPath)) {
             mkdir($newPath);
             if ($output) {
                 echo "mkdir {$newPath}\n";
             }
         } elseif ($file->isFile() && in_array($file->getExtension(), ['php', 'phpt', 'phtml'], TRUE)) {
             $original = file_get_contents($file);
             file_put_contents($newPath, $backporter->port($original));
             if ($output) {
                 echo "ported file {$newPath}\n";
             }
         }
     }
 }
 public function __construct($sourceDir, $destinationDir = false, $output = false)
 {
     if (!$destinationDir) {
         $destinationDir = $sourceDir;
     }
     $backporter = new Backporter();
     $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($sourceDir));
     foreach ($iterator as $file) {
         if (!$file->isFile() || !in_array($file->getExtension(), ['php', 'phpt', 'phtml'], TRUE)) {
             continue;
         }
         $newPath = preg_replace("#^{$sourceDir}#", $destinationDir, $file);
         $dir = dirname($newPath);
         if (!is_dir($dir)) {
             mkdir($dir, 0777, true);
             if ($output) {
                 echo "mkdir {$newPath}\n";
             }
         }
         $original = file_get_contents($file);
         file_put_contents($newPath, $backporter->port($original));
         if ($output) {
             echo "ported file {$newPath}\n";
         }
     }
 }