public static function compile($__source__, $__target__) { $R = new self(); require $__source__; $compilation = $R->perform_compile(); $fp = fopen(__FILE__, 'r'); fseek($fp, __COMPILER_HALT_OFFSET__); $compiled_source = ''; $in = false; while (!feof($fp)) { $line = fgets($fp, 8192); if (preg_match('|// START-ROUTES|', $line)) { $compiled_source .= $compilation->export(); $in = true; } elseif (preg_match('|// END-ROUTES|', $line)) { $in = false; } elseif (!$in) { $compiled_source .= $line; } } fclose($fp); mkdir_p(dirname($__target__)); file_put_contents($__target__, ltrim($compiled_source)); }