Minifikace html/latte – řešení
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Machy8
- Člen | 59
Nevím jestli je v Latté nějaká metoda pro kompresy kódu, ale kdyby sis chtěl vytvořit vlastní, musíš si nejspíš vytvořit preprocesor. Ten kód se zmenší před tím, než to zpracuje Latté.
Příklad z Macdomu
<article>
<h2 class="articleTitle break-all">
{$article->title}
</h2>
</article>
Po kompresy
<article><h2 class="articleTitle break-all"><?php echo Latte\Runtime\Filters::escapeHtml($article->title, ENT_NOQUOTES) ?></h2></article>
Při vytváření svého
Volání v BasePresenteru
protected function createTemplate()
{
$template = parent::createTemplate();
$template->getLatte()->setLoader(new Compressor($this));
return $template;
}
Soubor Compressor.php – třída musí dědit Latte\Loaders\FileLoader
class Compressor extends Latte\Loaders\FileLoader {
public function getContent ($file)
{
$content = parent::getContent($file);
// Zpracování obsahu - odstranění zalomení řádků, tabulátorů, mezer > 1...
return $compiled;
}
};
Editoval Machy8 (14. 3. 2016 16:29)
- David Matějka
- Moderator | 6445
Minifikace html neprinese zadny vyrazny benefit, mnohem lepsi (a dostacujici)
je gzipovani vystupu. Zkusil jsem vzit titulku idnesu
bez gzipu: 93kB pred minifikaci, 79kB po minifikaci.
s gzipem: 29kB neminifikovany, 27kB minifikovany