Koniec życia PHP 5.6. i 7.0
Niedawno świętowaliśmy release PHP 7.3, ale zbliżające się daty już tak wesołe nie są. Do końca życia PHP 7.0 pozostały niecałe dwa tygodnie i, co ważniejsze, nieco ponad miesiąc do końca PHP 5.6. Najwyższy czas zabrać się za migracje, bo czasu nie ma zbyt dużo, a do zrobienia jest sporo.
PHP 7.0 debiutowało niemal 3 lata temu i trzeba powiedzieć, że była to najlepsza rzecz, jaka przytrafiła się temu językowi od lat. Ta wersja jest dużo bardziej wydajna i lepsza od PHP 5 pod każdym względem. Tu warto pomyśleć o migracji na najnowszą wersję, bo kolejne w szeregu PHP 7.1 niedługo przestanie być aktywnie wspierane.
PHP 5.6 debiutowało w 2014 roku i od tego czasu zdobyło bardzo dużą popularność. Od półtora roku otrzymuje tylko patche security. Jest to ostatnia wersja z serii PHP 5 — i bardzo dobrze :)
źródło: http://php.net/supported-versions.php
Statystyki dostępne na rynku są alarmujące - obydwie wersje są ciągle niezwykle popularne. PHP ma więc kolejny problem.
Sytuacja na rynku
PHP ma dwie tożsamości. Dwie bardzo różne tożsamości.
Pierwsza z nich to PHP w firmach technologicznych. Tu język ma olbrzymią konkurencję ze strony np. Pythona, JavaScriptu czy nawet Javy. W tym sektorze stawia się na dedykowane rozwiązania, pisane od A do Z przez programistów w oparciu o frameworki takie jak Symfony czy Laravel. Standardem jest tu używanie Composera czy pisanie testów.
Druga tożsamość to WordPress (i inne CMS-y czy sklepy oparte o PHP). Tu PHP święci olbrzymi sukces - ponad 60 mln stron działa na tym systemie. Szacuje się, że około 32% całego weba to właśnie strony oparte na WordPressie (tak piszą u siebie na stronie). Są tu zarazem prywatne blogi, jak i duzi wydawcy treści. Instalacjami WordPressa rzadko zarządzają programiści — raczej ludzie, którzy specjalizują się w tym systemie.
Właśnie z tego powodu statystyki używania poszczególnych wersji PHP znacznie się różnią, jeżeli spojrzymy na statystyki WordPressa i Composera.
Statystyki z Composera
Źródło: https://seld.be/notes/php-versions-stats-2018-1-edition
Są to statystyki z maja. Ponad połowa użytkowników Composera korzysta już z PHP 7.1 lub 7.2. O migracji na wyższe wersje powinno pomyśleć w sumie 42% programistów. Sytuacja w tym momencie może być lepsza. W porównaniu z poprzednim, jesiennym raportem (2017) odsetek używających 5.6 spadł o prawie 7 p.p, a 7.0 o prawie 8 p.p. Podobny trend powinien się utrzymać w tym roku, co by oznaczało, że sytuacja ogólnie nie jest zła. W końcu na przeterminowanych wersjach pracuje wg raportu 5% developerów.
Jeżeli znacie PHP-owców, którzy pracują na niewspieranej wersji PHP, to przekażcie im wyrazy naszej dezaprobaty dla tego procederu.
Statystyki z WordPressa
Źródło: https://wordpress.org/about/stats/
Dwie wersje, które do końca roku przestaną otrzymywać poprawki bezpieczeństwa, to ponad 56% wszystkich instalacji! Tylko niespełna 18% działa na wersjach, które będą wspierane w 2019 roku. Już więcej WordPressów - ponad 25% - działa na nieaktualnych wersjach. Statystyki WordPressa są - lekko to ujmując - alarmujące. Oznaczają one, że jeżeli sytuacja nie zacznie się szybko zmieniać, to w 2019 roku 45 mln stron na WordPressie będzie działać na wersji języka, która nie dostaje poprawek bezpieczeństwa.
Sytuacja jest o tyle poważna, że crawlerów, które przeszukują internet w poszukiwaniu stron z WordPressem, jest tysiące. Bulldogjob codziennie dostaje kilkanaście requestów poszukujących ścieżki `wp-admin`. WordPress jest tak często wybierany na cel ataku, właśnie ze względu na popularność. To nie jest też tak, że PHP 5.6 jest tak dobrze sprawdzone w bojach, że jest odporne na ataki. W tym roku wyszło 5 wydań z łatkami bezpieczeństwa.
Czy jest się czym przejmować?
Ok, to nie jest tak, że dzień po tym, jak wersja języka przestanie być wspierana, to wszystko się zawali. W końcu — jak pokazały wykresy — miliony ludzi używa przeterminowanych wersji PHP i nic się z tymi serwisami złego nie dzieje. Natomiast z czasem zagrożenie exploitami, które można zastosować na szeroką skalę, będzie rosnąć, o ile nie uda się zmigrować systemów działających na niewspieranych wersjach.
Tak, WordPress raczej nie będzie mieć w swojej bazie danych zbyt wielu informacji, które byłyby cenne do pozyskania. Być może emaile komentujących (o ile ktoś korzystał z wbudowanych komentarzy) mogą być w jakiś sposób przydatne dla atakującego. Natomiast sklepy internetowe mają tych informacji nieco więcej. Dodatkowo w razie zainfekowania strony mogą służyć do dystrybucji złośliwego oprogramowania. Przyznaję jednak, że na tym etapie to dość małe zagrożenie, które jest mniej więcej takie same dla innych technologii.
Dlatego ja największe zagrożenie widzę dla wizerunku społeczności PHP. Chodzi o to, że PHP - pomimo popularności i wielu pozytywnych zmian w ostatnim czasie - znowu zostaje w tyle. O ile profesjonalni developerzy (a przynajmniej ci używający Composera) radzą sobie całkiem nieźle, to cała reszta nie nadąża. To wpływa na to, jak postrzegany jest współcześnie PHP.
Zmigruj!
Dlatego, jeżeli jesteś programistą PHP i korzystasz z wersji, która zaraz przestanie być wspierana, to zlituj się i zmigruj!
Warto to zrobić nawet dla performance’u - PHP 7.0 jest 2x szybsze niż 5.6, a PHP 7.3 to kolejne 25% poprawy względem 7.0.
Przeczytaj oficjalny przewodnik migracji z 5.6 na 7.0 i z 7.0 na 7.1, żeby dowiedzieć się więcej o zmianach między wersjami.
Istnieje też parę narzędzi, które mogą pomóc w procesie. Przy migracji z 5.6 na 7.0 sprawdzi się PHP 7 Migration Assistant Report, ale może przydać się również Phan - bardzo ceniony statyczny analizator kodu, który raportuje problemy z kompatybilnością.