Všiml jsem si, že se na tomto fóru celkem rozmáhá snaha chránit svoje autorské právo za pomocí šifrování zdrojových kódů a proto jsem se rozhodl o tomto problému napsat pár slov.
Proč?
Pro toto téma je hodně důležitá otázka „proč?“. Podle mě u většiny projektů nemá šifrování smysl a použitím nějakého specializovaného softwaru (ionCube, Zend Encoder, …) jen znehodnocujete svůj projekt.
PHP programátor si musí uvědomit, že nikdy svůj kód neochrání. A to ani v případě použití výše zmíněných profesionálních nástrojů, není ochrana stoprocentní. Všechny tyto šifrovací nástroje a převaděče na bytecode něco stojí a hlavně obtěžují uživatele instalací speciální extenze, která šifrovaný kód spouští.
Dále by člověk měl myslet na fakt, že to co napsal, není nic světoborného a určitě si to nezaslouží takovou přehnanou ochranu. Na světě jsou tisíce lepších programátorů, kteří daný problém vyřeší lépe a rychleji. Mnozí vyvíjí různé opensource projekty, takže to, co se snažíte chránit, lze jinde získat zadarmo a ještě to bude lépe vyřešené.
Pro ochranu vašeho autorského práva existují licence. To je ale zase jiné téma.
Jak?
Pokud je někdo stále paranoidní, mám pro něj řešení.
Existuje jeden způsob (mikro)optimalizace, který zároveň naformátuje kód do nečitelného bastlu – minifikace. Tento způsobem se hojně používá u javascriptových frameworků (například jQuery) zá účelem zmenšení velikosti souboru, zkuste si ale z tohoto zdrojáku něco vyčíst. Existují samozřejmě nástroje, které umí zdrojový kód přeformátovat zpátky na čitelnou verzi, ale teď vážně, myslíte si, že člověk co všechno tohle bude ovládat, bude chtít vaše zdrojové kódy ?
Javascript: o minifikaci javascriptu si můžete přečíst článek Jakuba Vrány, který udělal test nejpoužívanějších nástrojů a zároveň vytvořil svůj JsShirnk.
PHP: na blogu Davida Gudla můžete najít podobný článek, kde popisuje vytvoření primitivního nástroje - PHP shrinker.
CSS: kaskádové styly lze také „urychlit“. Já osobně používám nástroj cssmin.