Create packer with recursive inclusion and deduplication

This commit is contained in:
Tim
2025-03-18 23:31:28 +01:00
parent c4845ed7c6
commit 61a4dcd370
11 changed files with 108 additions and 11 deletions

View File

@ -0,0 +1,18 @@
<?php
function yieldIncludes(string $file, &$includes, int $depth = 0): iterable
{
if (!isset($includes[$file])) return;
foreach (getAllLines($file) as $line) {
$includeFile = getLineIncludeFile($line);
if ($includeFile) {
yield from yieldIncludes($includeFile, $includes, $depth + 1);
unset($includes[$includeFile]);
} else {
if ($depth > 0 && str_starts_with($line, '<?php')) continue;
if (empty(trim($line))) continue;
yield $line;
}
}
}