Articles

Co je PHP 7 a jak ho začít používat ve WordPressu?

Tagy – jak na to, PHP, PHP7
  • Podle Sourav Kundu
  • 15. května 2019
WordPress Deals

PHP 7 je jednou z nejvýznamnějších aktualizací v historii softwaru na straně serveru, který pohání více než 82 % internetu, a v tomto průvodci si probereme základy jeho používání s WordPressem.

Podíváme se na neuvěřitelné výhody PHP 7 a pomůžeme vám pochopit, jak je důležité dodržovat doporučenou minimální verzi (5.6). Dozvíte se také, jak zkontrolovat, zda je váš web WordPress připraven na PHP 7, a změříte výhody a nevýhody upgradu na tuto novou verzi.

Na konci této příručky budete vybaveni pevnými znalostmi PHP a dostatečně přesvědčeni, abyste aktualizovali na doporučené minimum – nebo možná dokonce udělali další krok k PHP 7!

Začněme…

Průvodce PHP pro začátečníky – Co je PHP?“

Pro ty z vás, kteří jsou v tomto oboru naprostými nováčky, je PHP skriptovací jazyk na straně serveru určený ke generování stránek HTML na vyžádání.
Představte si jej jako jednoduchý proces o třech krocích:

  • Vstup: Zadáte sadu příkazů zapsaných ve formě skriptu PHP jako vstup pro PHP Engine.
  • Zpracování:
  • Výstup: Nástroj PHP Engine provede skript na serveru: Výstupem je stránka HTML, kterou vykreslí webový prohlížeč.

Ve výše popsaném třístupňovém procesu můžeme identifikovat několik komponent.

  1. Skript(y) PHP
  2. PHP Engine
  3. Server
  4. Výstupní HTML

Nyní se podívejme, jak souvisejí s typickým prostředím WordPressu.

Components of a typical PHP Environment

1) Skripty PHP: WordPress je v podstatě rozsáhlá, organizovaná sbírka kódu napsaného v několika skriptovacích jazycích, jako jsou PHP, JavaScript a CSS, přičemž primárním z nich je PHP. Právě ten dává systému WordPress jeho dynamickou povahu.

2) Engine PHP: Představte si jej jako centrální komponentu, která vykonává pokyny stanovené ve skriptu PHP – činí tak s pomocí serveru, na kterém běží. Engine PHP je jednou z nejdůležitějších součástí a ovlivňuje rychlost, výkon a spolehlivost webových stránek. Je také ústředním tématem naší diskuse!“

3) Server: Jedná se o vzdálený počítač, známý také jako „webhostitel“, kde je váš web WordPress umístěn. Pokud by existoval webový hostitel bez nainstalovaného PHP, WordPress by na něm neběžel.

4) Výstupní HTML: Při každém načtení webové stránky WordPress je vyvolán engine PHP. Skripty jsou vykonávány enginem PHP pomocí serveru a výsledné (neboli výstupní) HTML je exportováno do webového prohlížeče návštěvníka. A tím je celý proces dokončen.

Co je PHP 7?“

Teď, když už máme jasno v tom, co je to skript PHP, si povíme něco o enginu PHP. Po zbytek článku budeme termíny „engine PHP“ a „PHP“ používat jako synonyma.

PHP 7 je engine PHP, který byl uveden na trh v prosinci 2016 a nese spoustu nových funkcí, vylepšení výkonu a zabezpečení. Jako každou dobrou lekci začněme trochou historie.

Krátká historie PHP

PHP byl vydán v roce 1994 jako skriptovací jazyk Rasmusem Lerdorfem ve snaze vytvořit nástroj, který by usnadnil aktualizaci jeho osobní domovské stránky. *Netušil, že se tento vedlejší projekt vyvine a bude pohánět více než 82 % všech webových stránek – včetně velkých firem, jako jsou *Facebook a WordPress.

V průběhu let se PHP dočkalo několika verzí. První z nich byla v roce 1995, následovaná verzí 2.0 v roce 1997. Verze 3.0 byla vydána v roce 1998 a následovala verze 4.0 v roce 2000.

Je to očekávání, co dělá PHP 7 výjimečným?

illustration of 12 years time taken to release php 7

Tady to začalo být zajímavé. Verze PHP 5 byla vydána o čtyři roky později, v roce 2004. Poté se dočkala několika iterací – a to natolik, že se výbor rozhodl verzi 6 přeskočit a přejít k verzi 7. Pro představu, první iterací PHP 5 byla verze 5.0 vydaná v roce 2004. Jeho poslední iterace, PHP 5.6, byla vydána o deset let později, v roce 2014.

Dva roky poté přišlo PHP 7 – dosud nejslibnější verze PHP. V podstatě si svět musel počkat dobrých 12 let, než se mu dostalo do rukou PHP 7.

Výkonnostní vylepšení v PHP 7

Čekání nepřišlo nazmar. PHP 7 přišlo s nákladem výkonnostních a bezpečnostních vylepšení. Pojďme se podívat na jednotlivá výkonnostní vylepšení podpořená solidními benchmarky.

1) Masivně vylepšená šířka pásma (požadavky za sekundu)

php 7 advantages in WordPress higher bandwidth

PHP 7 dosahovalo téměř dvakrát lepších výsledků než PHP 5.6, na kterém běžel WordPress 4.1.1.

php7 vs php 5.6 in WordPress performance benchmark

V grafu výše můžeme vidět téměř 2× vyšší výkon než PHP 5.6.18násobný počet požadavků za sekundu při méně než poloviční latenci.

2) Nižší latence pro souběžné uživatele

php 7 advantages in WordPress lower latency

Latence je doba, která uplyne mezi prvním požadavkem a první odpovědí mezi serverem a klientem. Čím nižší je latence, tím lepší je služba. Podívejme se, jak si s ní poradí PHP 7.

php7 vs php 5.6 in WordPress latency concurrent users

Vzali jsme tři datové body podle počtu současně pracujících uživatelů pro každý engine PHP.

  1. Oranžové sloupce představují latenci, když váš web používá deset lidí současně.
  2. Modré sloupce jsou pro dvojnásobek (tj. 20 současně pracujících uživatelů).
  3. Růžové sloupce jsou pro 40 současně pracujících uživatelů.

Ve všech případech dává PHP 7 svým předchůdcům na frak.

*To vše na *přesně stejném hardware! To znamená, že pokud byste přešli na PHP 7 se všemi nezbytnými kontrolami kompatibility (více o tom později), měli byste zaznamenat dvojnásobný nárůst výkonu.

3) Verze WordPress 4.0+ jsou optimalizovány pro PHP 7

php 7 advantages in WordPress better compatibility with wordpress

Samotný WordPress 4.0 byl vyladěn tak, aby využíval nejnovější funkce PHP 7. Podle společnosti Zend má na stejném hardwaru téměř dvojnásobný výkon ve srovnání se svým předchůdcem WordPress 3.6.

php7 WordPress 3.6 vs 4.1 performance improvement

Ve výše uvedeném grafu vidíme, že ve velké aktualizaci WordPressu došlo k dvojnásobnému zvýšení výkonu. Tento benchmark je bez ohledu na verzi PHP. Spíše to svědčí o tom, že komunita WordPress průběžně optimalizuje kód pro nadcházející verze PHP.

4) O 75 % méně instrukcí, stejný výsledek

php 7 advantages in WordPress memory optimization

PHP 7 má také vražednou sadu instrukcí. Je nehorázně optimalizovaná pro provedení stejné úlohy v menším počtu instrukcí. Například jeden požadavek na WordPress v PHP 5.6 se vykoná za 100 milionů instrukcí procesoru. Zatímco v PHP 7 se stejný požadavek provede za 25 milionů instrukcí procesoru. To je snížení počtu příkazů potřebných k provedení stejného úkolu o 75 %!“

5) Výrazné zvýšení výkonu

php 7 advantages in WordPress superior performance

Jason Cosper, rezidentní nerd ve WP Engine, si rád pohrává s nejnovějšími enginy PHP, aby zjistil, které z nich fungují nejlépe.

php 7 advantages in WordPress php 5.5 vs php 7.0

Při jednom ze svých experimentů zjistil, že PHP 7 je pravděpodobně na 6. místě.6krát rychlejší než PHP 5.5 – při spuštění WordPress 4.3.1 a bbPress.

Stav PHP ve WordPressu v 1. čtvrtletí 2017

Když už máme funkční představu o výhodách PHP 7, podívejme se, kolik uživatelů WordPress používá.

state of WordPress php 2017 q1

Dobré: Podle oficiálních statistik WordPressu přešlo k 20. dubnu 2017 na PHP 7 9 % komunity WordPress.

To dobré: Přibližně 40 % uživatelů WordPressu používá PHP 5.6. To je relativně dobrá zpráva, protože PHP 5.6 dostává bezpečnostní podporu až do 31. prosince 2018.

Škaredé:

  • PHP 5.4 nebylo opraveno od roku 2015.
  • A PHP 5.5 nebylo opraveno od roku 2016.
  • Pokud používáte verzi starší než 5.6, můžete být vystaveni vážným problémům se zranitelností.6 (více o tom, jak zkontrolovat verzi PHP, se dozvíte později), neprodleně svou verzi PHP aktualizujte.

Maják naděje

yoast seo php 5 and php 7 battle

Joost de Valk, zakladatel Yoast SEO – pluginu pro WordPress SEO s více než 3 miliony aktivních instalací – se rozhodl s tím něco udělat. Cituji z původního článku:

Od verze Yoast SEO 4.5 začneme správcům webů s PHP 5.2 zobrazovat na ovládacím panelu WordPressu upozornění. Toto oznámení bude velké, ošklivé a neodstranitelné. V tomto oznámení vysvětlíme, proč by měl správce aktualizovat verzi PHP webu.

WordPress a zastaralé verze PHP

dangers of outdated php illustration

Na tomto místě je důležité zdůraznit, že WordPress bude i nadále podporovat starší verze PHP. To však neznamená, že si můžete v klidu sednout. Je v našem nejlepším zájmu přejít na verzi 5.6 – pokud ne na PHP 7.

php 5.x and php 7 support timeline

Pokud používáte PHP 5.6, čeká vás brzy několik věcí:

  1. Podle oficiálního harmonogramu podpory PHP by PHP 5.6 dostalo oficiální podporu do 17. ledna 2017. Tím to skončilo.
  2. Ještě lepší zprávou je, že PHP 5.6 by získalo bezpečnostní podporu až do 31. 12. 2018.
  3. Samozřejmě vám stále budou chybět všechna výkonnostní vylepšení, která byste mohli získat za naprosto nulovou investici.

Přechod na PHP 7 – vyplatí se to?“

Teď, když už pevně známe různé výhody PHP 7, pojďme se věnovat zásadní otázce:

Měli byste přejít na PHP 7?

Způsob, jak dospět k jakémukoli rozhodnutí, by měl být založen na logice. Podíváme se na řešení těchto tří základních otázek:

Jaké jsou výhody přechodu na PHP 7?“

php 7 advantages

Pokryli jsme pět bodů podložených srovnávacími testy z celého webu. Všechny poukazují na řadu výhod a na jednoznačné ano, pokud jde o rozhodnutí přejít.

Jsou vaše téma a pluginy WordPressu kompatibilní s PHP 7?

php 7 compatibility issues

To, že je WordPress kompatibilní s PHP 7 (a má zpětnou kompatibilitu s PHP 5.6), neznamená, že jsou kompatibilní všechna jeho témata a pluginy. Můžete používat na zakázku vytvořené téma nebo zásuvný modul, které mají funkce, jež jsou v PHP 7 zastaralé. Můžete také používat zásuvný modul z úložiště WordPressu, který již nějakou dobu nebyl aktualizován. Jaké je řešení?

Jak můžete zkontrolovat, zda je váš web WordPress připraven na PHP 7?

php 7 challenges

Naštěstí velkorysí vývojáři ze společnosti WP Engine vytvořili poměrně úžasný plugin, který řeší právě tento problém.

php compatibility checker WordPress plugin by wpengine

Představujeme PHP Compatibility Checker:

PHP Compatibility Checker

Podporované verze PHP pluginu PHP Compatibility Checker

Problémy s kompatibilitou můžete zkontrolovat pro pět různých verzí PHP, od verze 5.3 až 7.0.

php compatibility checker WordPress plugin test results

(klikněte pro zvětšení)

Problémy s kompatibilitou (pokud jsou nalezeny) jsou rozděleny do kategorií chyb a varování. Zásuvný modul vypíše soubor a číslo řádku chybného kódu spolu s informací, proč je tento kód nekompatibilní se zvolenou verzí PHP.

Je zde však několik omezení:

  1. Zásuvný modul nemůže zjistit problémy s kompatibilitou za běhu, protože nespouští žádné z existujících témat a zásuvných modulů.
  2. Spoléhá se na WP-Cron, který kontroluje soubory na pozadí, takže WP-Cron musí být na serveru povolen a funkční.
  3. Občas jsou hlášeny falešně pozitivní výsledky, protože zásuvný modul nemůže zjistit nepoužívané cesty kódu, které mohou být použity pro zpětnou kompatibilitu.

list of supported plugin checks by php compatibility checker

Ukázkový seznam zásuvných modulů podporovaných nástrojem PHP Compatibility Checker.

Celkově se jedná o docela šikovný doplněk, který vám může říct, zda je váš zásobník WordPress připraven na upgrade, nebo ne!

Jaká jsou nebezpečí nepřechodu na PHP 7?

php 7 pitfalls

Následující tři body vysvětlují nevýhody nepřechodu na doporučovaný PHP 7. Upozorňují také na některá možná nebezpečí nepřechodu na požadovanou minimální verzi PHP 5.6.

4.1 Pokles výkonu: Za prvé, přišli byste o nejméně dvojnásobné zvýšení výkonu, aniž byste investovali jediný cent. A hádejte co? Pokud používáte PHP 5.2, je údajně o 400 % pomalejší než PHP 7!“

4.2 Bezpečnostní problémy: PHP 5.x obsahovalo množství zranitelností, které byly v novějších verzích řádně opraveny. Rok 2016 byl ve skutečnosti rekordním rokem, co se týče bezpečnostních zranitelností PHP – bylo nahlášeno více než 100 problémů, od odepření služby (DoS) po poškození paměti, spuštění škodlivého kódu atd.

Pro představu, jak špatná je situace, PHP 5.4 nebylo opraveno od roku 2015 a již není podporováno. A přesto 21 % uživatelů WordPressu stále používá PHP 5.4! Pokud patříte do této skupiny, aktualizujte dnes na verzi 5.6.

4.3 Rozbité zásuvné moduly: Používání starší, nepodporované verze PHP způsobuje konflikty zásuvných modulů. Jednou z nejvýraznějších chyb je „neočekávaná funkce T_Function“, jak je vidět níže.

outdated version of PHP causes WordPress conflicts

Snímek obrazovky z vlákna podpory zásuvného modulu Content Locker

Výše uvedený snímek obrazovky je dotaz na podporu zásuvného modulu Content Locker. Autor jasně uvádí, že minimální verze PHP potřebná pro fungování zásuvného modulu je 5.4.

Příběhy o úspěchu

PHP 7 success stories

Vždy je povzbudivé vidět, jak různé organizace po celém světě využívají výhod aktualizace.

5.1) Ušetřené jmění pro Badoo

Naším prvním příkladem je seznamovací aplikace Badoo, které se upgradem na PHP 7 podařilo ušetřit přes 1 milion dolarů. Jak? Jednoduše! PHP 7 snížilo množství výpočetního výkonu potřebného k provedení stejného úkolu. K provedení stejného úkolu tak bylo potřeba méně serverů, čímž se nakonec uvolnilo přibližně 300 serverů!“

5.2) Významné zvýšení výkonu pro společnost Clinton Electronics

Náš druhý příběh úspěchu pochází od klienta WP Engine, společnosti Clinton Electronics. Stručně řečeno, chtěli dynamický e-shop s rychlým načítáním. Zvoleným stackem byl WordPress spolu s WooCommerce. Agentura, se kterou spolupracovali, si vybrala WP Engine jako poskytovatele spravovaného hostingu WordPressu, který jim zase doporučil PHP 7. Díky tomuto upgradu se nakonec podařilo zkrátit dobu načítání webu až o 60 %!

Jak přejít na PHP 7 s WordPressem?

switching to php 7 illustration

Nejprve se ujistěte, že je váš současný stack WordPress kompatibilní s PHP 7 pomocí pluginu PHP Compatibility Checker. Jakmile vám plugin dá zelenou, pokračujte v aktualizaci.

  • Pokud používáte sdílený hosting WordPressu, například Bluehost, můžete verzi PHP aktualizovat ve čtyřech jednoduchých krocích. Téměř všichni poskytovatelé sdíleného hostingu WordPressu jsou vybaveni panelem cPanel nebo vlastním přístupovým panelem, ve kterém můžete verzi PHP změnit.
  • Pokud používáte poskytovatele spravovaného hostingu WordPressu, jako je například WP Engine, je přechod na PHP 7 hračka – obraťte se na jejich podporu a oni to zařídí během chvilky.
WPEngine PHP FAQ page Retrieved 26 Apr, 2017

WPEngine PHP FAQ page Retrieved: 26. 4. 2017

WP Engine PHP FAQ page, retrieved: 26. 4. 2017

Dobrá zpráva pro uživatele WP Engine je, že minimální povolená verze PHP je podle jejich FAQ page 5.6.

Proč WP Engine? Existuje celá řada výhod, které činí WP Engine ještě atraktivnějším:

  1. Inovativní technologie WordPress.
  2. Skvěle rychlé servery schopné zpracovat stovky milionů požadavků denně.
  3. Tvrdé zabezpečení s pokročilou ochranou proti DDoS.
  4. Vynikající podpora.

Působí v oboru již několik let a získali si špičkové značky, jako jsou National Geographic a AMD. Osobně se mi na WP Engine nejvíce líbí jejich kultura vracení peněz komunitě – ať už jde o sponzorování WordCampů, pořádání akcí nebo vytváření úžasných bezplatných pluginů, jako je například PHP Compatibility Checker.

Pokud uvažujete o upgradu nebo chcete změnit stávajícího poskytovatele hostingu, vřele doporučujeme WP Engine jako poskytovatele spravovaného hostingu WordPress s plány od 29 dolarů měsíčně.

Zabalení

Rychle si shrňme vše, co jsme se zatím dozvěděli:

  1. PHP pohání 82 % internetu a pohání stránky, jako je Facebook nebo WordPress.
  2. Doporučená minimální verze PHP je 5.6 – cokoli pod ní je velké ne!
  3. PHP 7 má výrazná vylepšení z hlediska výkonu, zabezpečení a funkcí – snadno zvýší výkon WordPressu 2× s nulovou potřebou dodatečného hardwaru.
  4. Přechod WordPressu na PHP 7 přináší řadu výhod bez jakýchkoli investic.
  5. Před přechodem se však musíte ujistit, že je vaše nastavení WordPressu připraveno na přechod na PHP 7 pomocí pluginu PHP Compatibility Checker.
  6. Sdílení hostitelé, jako je Bluehost, podporují PHP 7, ale je třeba jej povolit ručně.
  7. Spravovaní hostitelé WordPressu, jako je WP Engine, mají skálopevnou kompatibilitu s PHP 7.

Nakonec se PHP s každou další verzí stále zlepšuje. Pokud používáte WordPress spolu pouze s oblíbenými pluginy, mohli byste upgradem na PHP 7 hodně získat. Pokud však používáte hodně vlastních nebo zřídka aktualizovaných zásuvných modulů, je možná lepší před upgradem ještě několik měsíců vydržet. Je však nutné, abyste používali PHP 5.6 a nic nižšího!“

Již používáte PHP7 s WordPressem? Co si o tom myslíte?

Od Sourava Kundu

Sourav je technologický nadšenec, rád se učí a píše o WordPressu a zajímá se o marketing, psychologii a všechny digitální věci. Zastihnout ho můžete na Twitteru.

.