W tym poradniku chciałbym poruszyć kwestię optymalizacji plików PHP. Przedstawię w nim bardzo ciekawe darmowe narzędzie PHP Comments Cleaner. Program został stworzony do usuwania z kodu zbędnych elementów tj. komentarzy oraz pustej przestrzeni (nadmiarowych spacji). Rezultatem działania programu jest plik wynikowy, który cechuje się znacznie zmniejszoną wagą oraz krótszym czasem wykonywania. Niestety tego typu optymalizacja wiąże się także z częściową reorganizacją kodu i pogorszeniem jego czytelności.
W poprzednich artykułach opisywałem już, w jaki sposób zoptymalizować grafikę stosując specjalistyczne skrypty jak ScriptJPG czy ScriptPNG. Tym razem przyszła pora na optymalizację plików PHP 😉
Usuwanie komentarzy i pustej przestrzeni z plików PHP
Pobieramy i instalujemy PHP Comments Cleaner. Aplikacja prawidłowo funkcjonuje we wszystkich wersjach Windows.
Interfejs programu jest przejrzysty, oferuje wszystkie niezbędne funkcje, do których należą (Parsing options):
- recoursive – optymalizacji zostaną poddane wszystkie pliki znajdujące się w bieżącym katalogu oraz we wszystkich podkatalogach,
- remove code spaces – usuwa z kodu pustą przestrzeń (wycina z kodu niepotrzebne spacje),
- obfuscate – optymalizacja ekstremalna, zastosowanie opcji spowoduje dodatkowe zmniejszenie rozmiaru pliku, lecz dodatkowo pogorszy czytelność kodu. Mogą także wystąpić błędy w plikach wynikowych.
Można zoptymalizować jeden plik lub cały zestaw plików znajdujących się w danym katalogu i/lub podkatalogach. Po wskazaniu pliku i folderu docelowego oraz funkcji parsowania, aby rozpocząć proces optymalizacji klikamy parse. We wskazanej lokalizacji powstanie zoptymalizowana wersja pliku. Jeśli w menu Parsing options nie wskażemy żadnych opcji, z kodu zostaną usunięte same komentarze.
Wykonanie kopii zapasowej przed przystąpieniem do optymalizacji jest kluczowym elementem. Dodatkowo, jeśli zależy nam na niezawodności witryny, przed wdrożeniem jakiegokolwiek nowego pliku, należy wpierw przetestować działanie na lokalnym serwerze, czy też w inny sposób np. na domenie testowej. Nie eksperymentujmy na żywym organizmie!
Przykład dla pliku wp-load.php (tylko komentarze).
- Rozmiar przed optymalizacją: 2606 bajtów (2,54 KB)
- Rozmiar po optymalizacji: 1668 bajtów (1,62 KB)
W drugim wariancie usunięto komentarze + pustą przestrzeń, kod został maksymalnie zredukowany. Rozmiar po optymalizacji to zaledwie 1584 bajtów (1,54 KB).
UWAGA! Jeśli będziemy optymalizować pliki skórek/dodatków należy liczyć się z sytuacją, w której reorganizacja kodu spowoduje niekompatybilność pliku tłumaczeń (spolszczenia).
Przedstawiona metoda optymalizacji może nie przynieść oczekiwanych efektów jeśli witryna korzysta z kompresji gzip/deflate i/lub wyposażona jest w mechanizm buforowania (cache). Przy takim układzie zarówno zmniejszenie ilości przesyłanych danych jak również skrócenie czasu wykonywania może być nieodczuwalne, choć po wykonaniu benchmarku będzie widać różnice.
Należy tutaj jeszcze wspomnieć o drugim negatywnym czynniku, a mianowicie z uwagi na znikomą czytelność kodu, zawsze należy mieć pod ręką oryginalne pliki, z których w razie sytuacji podbramkowej będziemy mogli skorzystać. Zatem dla bezpieczeństwa powinniśmy przechowywać na serwerze dwie wersje plików, co wiąże się z dodatkowym ubytkiem przestrzeni dyskowej.
Pomimo wad niniejszej metody, stosuję ją lecz tylko dla tych plików, które są najczęściej wykorzystywane (wywoływane). W przypadku gdy muszę wprowadzić poprawki do kodu, korzystam z kopii zapasowej oryginalnego pliku, dokonuje w nim odpowiednich modyfikacji i ponownie przekształcam do postaci zoptymalizowanej.