JS a CSS Minifier v PHP

PHP Knihovny JS a CSS Minifier v PHP

Chtěl bych vám všem představit malý projekt, který jsem chtěl napsat již dávno, ale rozhodl jsem se pro to až teď. Projekt, který jsem už dávno potřeboval, ale nikdy jsem nenašel tu správnou knihovnu - Minifier.

Hlavní přednost této knihovny je jasná na první pohled - velikost. Se 150 řádky kódu má velikost necelých 5.5 kB a je smrštěna do jednoho souboru, takže vám opravdu překážet nebude.

Co vlastně dělám?

Knihovna slouží ke smršťování často obřích stylů a skriptů pouze do dvou souborů, čímž se značně zredukuje čas potřebný k načtení stránky. Tyto soubory také minifikuje, čímž z nich odstraní nepotřebné bílé znaky a komentáře.

Knihovna byla inspirována zmačkátorem, který měl sice výborný potenciál, nýbrž spoustu much.

Ale přejděme již k věci.

Začínáme

Minifier sází na jednoduchost a lehkost, proto ani jeho použití není nijak složité. Stačí si jej pouze stáhnout (z GitHubu nebo z přílohy tohoto článku) a načíst do skriptu:

require_once "Minifier.php";

Poté si ještě ve stejné složce s Minifierem vytvořte složku s názvem cache a máme hotovo! Nyní můžeme začít minifikovat!

Metody

Název Parametry Popis
add source (String, Array), type (String "css" or "js"; optional) přidává soubory, které budou minifikovány
render minify (Boolean; default true; optional), version (String; optional) fyzicky ukládá minifikované soubory, vrací HTMl tagy s načtenými soubory
clear - maže všechny soubory ve složce cache

Ukázky

Po načtení Minifieru si vytvoříme jeho novou instanci a tu si uložíme do proměnné.

$minifier = new Minifier();
Jednoduché skripty a styly

Skripty a styly můžeme přidávat buďto samostatně nebo v poli:

$minifier->add(array(
    "index.js",
    "index.css"
));
$minifier->add("cookies.js");
$minifier->add("tables.css");
Externí soubory

Minifier podporuje i externí knihovny. Jak jsem řekl na začátku, je tedy možné načítat opravdu pouze dva soubory.

$minifier->add(array(
    "https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js",        // jQuery
    "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css",   // Bootstrap
));
Komplikované názvy souborů

Ve většině případů Minifier umí odhadnout typ souboru, pokud ale načítáte soubor s nějakými parametry, je nutné jeho typ určit ručně. Lze tak dosáhnout pomocí druhého parametru. Druhý parametr se hodí především u fontů, kde typ souboru nelze poznat podle přípony.

$minifier->add("https://fonts.googleapis.com/css?family=Open+Sans", "css");
Procházení složek

Velkou předností Minifieru je možnost jednoduše načíst všechny soubory v jedné složce. Lze toho dosáhnout pomocí jednoduchého cyklu.

$files = glob('styles/*');
foreach($files as $file){
    if(is_file($file))
        $minifier->add($file);
}

Příkladem výše se načtou všechny soubory ve složce styles. Dejte si ovšem pozor, aby v procházených složkách byly opravdu pouze CSS nebo JS soubory.

Vyrenderování

Jakmile budete mít všechny soubory přidány, zbývá je již jen vyrenderovat. To uděláte tak, že v hlavičce dokumentu zavoláte metodu render().

$minifier->render();

Výstup metody neechujte, vše si vypíše sama.

Tato metoda má dva volitelné parametry - minifikovat a verze. Prvním určíte, přejete-li si soubory kromě sloučení i zminifikovat (defaultně true), druhým můžete soubory pojmenovat podle verze. Oběma souborům se do názvu přidá přípona s verzí, např. script-0.1.6.js

$minifier->render(false, "0.0.1");  // soubory se nebudou minifikovat a dostanou příponu -0.0.1
Pročištění

Pokud máte ve složce cache spoustu různých verzí souborů, můžete ji jednoduše pročistit pomocí metody clear().

$minifier->clear();

Dejte si ale pozor - pokud cache vyčistíte až po renderování, nebudou už renderované soubory k dispozici!

Závěr

To je asi tak vše. Pokud chcete svým návštěvníkům urychlit prohlížení vašeho webu, dejte mi šanci. Jsem stvořen od toho, abych byl lehký.

Napište mi prosím do komentářů, co si o Minifieru myslíte, a zda má cenu pokračovat ve tvorbě podobných lehkých knihoven.


Galerie

Program byl vytvořen v roce 2016.

 

Stáhnout

Staženo 19x (5.39 kB)
Aplikace je včetně zdrojových kódů v jazyce php

 

  Aktivity (4)

Program pro vás napsal kuxik009
Avatar

Jak se ti líbí článek?
Celkem (2 hlasů) :
4.54.54.54.54.5


 


Miniatura
Všechny články v sekci
Knihovny pro PHP

 

 

Komentáře

Avatar
00
Člen
Avatar
00:

Nejsem si jist, ale asi se píše Boolean, ne boleen

 
Odpovědět  +2 22. července 15:17
Avatar
kuxik009
Redaktor
Avatar
Odpovídá na 00
kuxik009:

Máš pravdu, díky :-)

 
Odpovědět  +1 22. července 15:26
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.