Manchmal müssen wir ein großes PHP-Skript verkleinern und mehrere davon in eine Datei komprimieren. Dies ist nützlich, wenn wir eine Bibliothek erstellen, die wir im Internet veröffentlichen wollen und nicht möchten, dass sich jemand daran zu schaffen macht, oder wenn es sich um ein nützliches Skript handelt, das wir oft kopieren werden und nicht zu viele Daten übertragen wollen.
Eine mögliche Lösung besteht darin, den Code zu verkleinern.
Ich habe dafür ein Online-Tool vorbereitet (fügen Sie einfach den Code ein, und Sie erhalten sofort eine verkleinerte Version davon zurück).
Der Kern des Minifiers kann auf dieses Minimum reduziert werden:
$file = 'StaticClass.php';// PHP-Shrinker von Dgx// Kompatibilität mit PHP 4 und 5if (!defined('T_DOC_COMMENT'))define ('T_DOC_COMMENT', -1);if (!defined('T_ML_KOMMENTAR'))define ('T_ML_KOMMENTAR', -1);// Eingabedatei lesen$input = file_get_contents($file);$space = $output = '';$set = '!"#$&\'()*+,-./:;<=>?@[\]^`{|}';$set = array_flip(preg_split('//',$set));foreach (token_get_all($input) as $token) {if (!is_array($token))$token = array(0, $token);switch ($token[0]) {case T_COMMENT:case T_ML_COMMENT:case T_DOC_COMMENT:case T_WHITESPACE:$space = '';break;default:if (isset($set[substr($output, -1)]) ||isset($set[$token[1]{0}])) $space = '';$output .= $space . $token[1];$space = '';}}// geschrumpfte Datei schreibenfile_put_contents('min_'.$file, $output);
Das Herzstück ist die Funktion token_get_all()
, die PHP-Code in einzelne "Atome" (Token) zerlegt, die eindeutig identifiziert und dann bei Bedarf ignoriert werden können.
Zum Beispiel erzeugt es (für das Beispiel habe ich die Methode "Nette\Utils\Images" verwendet):
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | de