git-subtree-dir: seatmap-webapi git-subtree-split: 02d4bf7404b8fcb788502ca45c813946b6c4f5b9
52 lines
1.5 KiB
PHP
52 lines
1.5 KiB
PHP
<?php
|
|
|
|
// patch files for PHP 7.0 compatibility
|
|
|
|
function patchDir(string $base, string $dir): int
|
|
{
|
|
$count = 0;
|
|
$entries = scandir($dir);
|
|
foreach ($entries as $entry) {
|
|
if ($entry === '.' || $entry === '..') {
|
|
continue;
|
|
}
|
|
$filename = "$base/$dir/$entry";
|
|
if (is_dir($filename)) {
|
|
$count += patchDir($base, "$dir/$entry");
|
|
}
|
|
}
|
|
foreach ($entries as $entry) {
|
|
$filename = "$base/$dir/$entry";
|
|
if (is_file($filename)) {
|
|
if (substr($entry, -4) != '.php') {
|
|
continue;
|
|
}
|
|
$patched = $original = file_get_contents($filename);
|
|
$patched = preg_replace('/\):\s*(\?[a-zA-Z]+|void)\s*\n/', ") /*:$1*/\n", $patched);
|
|
$patched = preg_replace('/([\(,])\s*(\?[a-zA-Z]+|void)\s+\$/', "$1 /*$2*/ \$", $patched);
|
|
$patched = preg_replace('/(private|public|protected) const/', "/*$1*/ const", $patched);
|
|
if ($patched && $patched != $original) {
|
|
file_put_contents($filename, $patched);
|
|
$count++;
|
|
}
|
|
}
|
|
}
|
|
return $count;
|
|
}
|
|
|
|
function patch(string $base, array $dirs)
|
|
{
|
|
$start = microtime(true);
|
|
$count = 0;
|
|
foreach ($dirs as $dir) {
|
|
$count += patchDir($base, $dir);
|
|
}
|
|
$end = microtime(true);
|
|
$time = ($end - $start) * 1000;
|
|
if ($count) {
|
|
fwrite(STDERR, sprintf("%d files patched in %d ms\n", $count, $time));
|
|
}
|
|
}
|
|
|
|
patch(__DIR__, ['vendor']);
|