PHP 7 – nova PHP verzija – prednosti korištenja

Želje developera i vlasnika web stranica se sigurno podudaraju u potrebi da web stranica radi glatko i brzo, da ne troši puno serverskih resursa te shodno tome lakše izlazi na kraj s povećanim brojem posjeta. Web stranice bazirane na PHP-u poput WordPressa, Drupala, Joomle, Magenta ili PHP frameworka poput Laravela ili Symfonya dokazano rade brže koristeći posljednju stabilnu verziju PHP-a. Mnogi sustavi su već usklađeni sa standardima koje je uveo PHP 7, neki od njih, poput WordPressa, već sugeriraju PHP 7 kao preporučenu verziju.

PHP7 plus

Malo PHP povijesti

PHP 5 je objavljen prije punih 13 godina. Dobro nas je služio 😉 No, web je vrlo dinamično mjesto te treba držati korak s trendovima, potrebama i zahtjevima korisnika.

Tako je (nikad objavljena) verzija 6 trebala uvesti Unicode. Unicode je standard za razmjenu podataka usmjeren na prikaz slova na način neovisan o jeziku, računalnom programu ili računalnoj platformi. S obzirom na to da je implementacija kompleksna te da su donesene neke loše odluke, (da ne spominjem povećanje potrošnje memorije i udara na performanse), nakon ankete je donesena odluka da se verzija jednostavno preskoči.

Početkom 2015. godine objavljena je prva alpha verzija 7. Prva stabilna verzija (7.0.0.) objavljena je u prosincu iste godine. Točno godinu dana kasnije, u prosincu 2016. godine objavljena je verzija 7.1

PHP project je objavio listu uklonjenih funkcija , kako bi vam pomogla da bezbolno prijeđete s verzije 5 na verziju 7. Također, dostupna je lista uklonjenih API-a i ekstenzija.

Podaci o korištenju

Po nekim renomiranim izvorima podataka, preko 90% web stranica baziranih na PHP-u još uvijek koristi verziju 5.x. Tako W3Techs u statistici za ožujak 2017. godine donosi podatak da se verzija 5 koristi na 95.6% svih web stranica baziranih na PHP-u kao programskom jeziku.

korištenje PHP verzija

WordPress kao najzastupljeniji CMS na internetu, u svojim statistikama korištenja  za veljaču 2017. godine donosi podatak da 6.5% WordPress webova koristi PHP 7, što je brojka koja pokazuje siguran porast udjela. Usporedbe radi, udio verzije 7, 6 mjeseci ranije bio je 2.2%.

WordPress PHP statistike

U statistici nije vidljiva verzija 4 jer je najniža podržana verzija PHP-a 5.2.4+

Performanse

Jedan od najvažnijih razloga za promjenu s PHP 5 na verziju 7 jest povećanje brzine. Neovisno koji benchmark alat koristili, PHP 7 je bolji po performansama od prijašnjih verzija.

Na primjeru niže, WordPress 4.7.2 na PHP 5.6 transaction rate je bio 7.93 trans/sec dok je na verziji 7.0 transaction rate bio 11.73 trans/sec, što je razlika od 48% u korist PHP 7.

Transaction rate PHP

Kako bi provjerili poboljšanje performansi, odlučili smo provesti nekoliko testova. Na VPS serveru smo instalirali WordPress, Joomlu i WooCommerce, s “dummy contentom“, bez aktivnog cacheiranja. Više o metodologiji i rezultatima u nastavku.

Testiranje

Hardware i software

4 CPU core Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
8 GB RAM
CloudLinux environment

Metoda testiranja

Siege -c 20 -v -t 300s -i – f url file
Imamo 20 concurent usera, u internet modu (čekamo response time prije slanja novih reqestova), trajanje je 300 sekundi

WordPress

WordPress logoWordPress: verzija 4.7.2
Pluginovi: 0
Tema: Twenty Seventeen verzija 1.1
Sadržaj: WordPress theme test data

URL-ovi

http://www.stresstest.host25.com/wp/
http://www.stresstest.host25.com/wp/uncategorized/template-sticky/
http://www.stresstest.host25.com/wp/tag/sticky-2/
http://www.stresstest.host25.com/wp/category/uncategorized/
http://www.stresstest.host25.com/wp/page/4/
http://www.stresstest.host25.com/wp/page/2/

PHP 5.6

Grafovi
WP PHP 5.6 Apache requests

WP PHP 5.6 cpu

Lifting the server siege...      done.
Transactions:                   2374 hits
Availability:                 100.00 %
Elapsed time:                 299.48 secs
Data transferred:              65.75 MB
Response time:                  2.00 secs
Transaction rate:               7.93 trans/sec
Throughput:                     0.22 MB/sec
Concurrency:                   15.84
Successful transactions:        2374
Failed transactions:               0
Longest transaction:           18.82
Shortest transaction:           0.67

PHP 7.0

Grafovi
WP PHP 7 Apache requests

WP PHP 7 cpu

Lifting the server siege...      done.
Transactions:                   3514 hits
Availability:                 100.00 %
Elapsed time:                 299.53 secs
Data transferred:             101.85 MB
Response time:                  1.21 secs
Transaction rate:              11.73 trans/sec
Throughput:                     0.34 MB/sec
Concurrency:                   14.21
Successful transactions:        3514
Failed transactions:               0
Longest transaction:            7.67
Shortest transaction:           0.28

Joomla

Joomla logoJoomla: Version 3.6.5 Stable
Modules/Plugins: none
Tema: Protostar
Sadržaj: Getting started, Hello World

URL-ovi

http://www.stresstest.host25.com/joomla/
http://www.stresstest.host25.com/joomla/component/tags/tag/2-joomla
http://www.stresstest.host25.com/joomla/component/search/?searchword=template&searchphrase=all&Itemid=101
http://www.stresstest.host25.com/joomla/2-uncategorised/2-hello-world

PHP 5.6

Grafovi
Joomla PHP 5.6 Apache requests

Joomla PHP 5.6 cpu

Lifting the server siege...      done.
Transactions:                   4786 hits
Availability:                 100.00 %
Elapsed time:                 299.35 secs
Data transferred:              47.49 MB
Response time:                  0.74 secs
Transaction rate:              15.99 trans/sec
Throughput:                     0.16 MB/sec
Concurrency:                   11.88
Successful transactions:        4786
Failed transactions:               0
Longest transaction:            5.70
Shortest transaction:           0.22

PHP 7.0

Grafovi
Joomla PHP 7 Apache requests

Joomla PHP 7 cpu

Lifting the server siege...      done.
Transactions:                   5759 hits
Availability:                  99.97 %
Elapsed time:                 299.16 secs
Data transferred:              57.24 MB
Response time:                  0.54 secs
Transaction rate:              19.25 trans/sec
Throughput:                     0.19 MB/sec
Concurrency:                   10.47
Successful transactions:        5759
Failed transactions:               2
Longest transaction:            6.62
Shortest transaction:           0.15

WooCommerce

WooCommerce logoWordPress: verzija 4.7.2
Pluginovi: WooCommerce verzija 2.6.13
Tema: Storefront verzija 2.1.7
Sadržaj: WordPress theme test data + WooCommerce Dummy Data

URL-ovi

http://www.stresstest.host25.com/woo/
http://www.stresstest.host25.com/woo/proizvod/flying-ninja/
http://www.stresstest.host25.com/woo/blog/
http://www.stresstest.host25.com/woo/uncategorized/markup-image-alignment/
http://www.stresstest.host25.com/woo/feed/
http://www.stresstest.host25.com/woo/2010/10/
http://www.stresstest.host25.com/woo/kosarica/
http://www.stresstest.host25.com/woo/moj-racun/
http://www.stresstest.host25.com/woo/page/2/
http://www.stresstest.host25.com/woo/kategorija-proizvoda/music/
http://www.stresstest.host25.com/woo/oznaka-proizvoda/modern/
http://www.stresstest.host25.com/woo/proizvod/woo-logo-2/#comment-57
http://www.stresstest.host25.com/woo/?s=ninja

PHP 5.6

Grafovi
wooCommerce PHP 5.6 Apache requests

WooCommerce PHP 5.6 cpu

Lifting the server siege...      done.
Transactions:                   1682 hits
Availability:                 100.00 %
Elapsed time:                 299.44 secs
Data transferred:              37.48 MB
Response time:                  3.04 secs
Transaction rate:               5.62 trans/sec
Throughput:                     0.13 MB/sec
Concurrency:                   17.10
Successful transactions:        1682
Failed transactions:               0
Longest transaction:            7.70
Shortest transaction:           1.12

PHP 7.0

Grafovi
WooCommerce PHP 7 Apache requests

WooCommerce PHP 7 cpu

Lifting the server siege...      done.
Transactions:                   2631 hits
Availability:                 100.00 %
Elapsed time:                 299.38 secs
Data transferred:              60.66 MB
Response time:                  1.75 secs
Transaction rate:               8.79 trans/sec
Throughput:                     0.20 MB/sec
Concurrency:                   15.38
Successful transactions:        2631
Failed transactions:               0
Longest transaction:            7.05
Shortest transaction:           0.56

Provjera kompatibilnosti

Svaka nova verzija PHP-a donosi poboljšanja, bugfixeve, sigurnosne zakrpe te ponekad i promjene u strukturi koda. Neke nadogradnje donose poboljšanja ili promjene kojima pojedini dijelovi prethodnih verzija postaju zastarjeli. U nekim slučajevima cijele verzije, kao na primjer verzija 4 i starije, više nisu podržane.

Ako koristite dodatke, teme ili skripte koje se oslanjaju na zastarjele verzije i nadogradite na noviju verziju PHP-u, promjene u odnosu na nadogradnju mogu uzrokovati nekompatibilnost starog koda i stranica se može “srušiti”. Važno je upoznati se s promjenama koje donose nove verzije te uskladiti kod svoje web stranice.

Osim ručnog pregledavanja koda vaše web stranice, posao možete prepustiti pluginovima koji skeniraju vašu web stranicu te vas upozoravaju na eventualne greške u kompatibilnosti koda. Na primjer, u WordPressu možete koristiti pluginove poput:

  • PHP Compatibility Checker – omogućava vam mogućnost izbora verzije PHP-a te pretražuje eventualne nekompatibilnosti na vašoj web stranicu. Plugin također kreira izvješće iz kojeg možete iščitati što točno treba popraviti.
  • PHP Pseudo Compiler – PHP validacijski alat koji provjerava nedefinirane funkcije ili metode

Ako pronađete plugin, temu ili skriptu koja nije kompatibilna s PHP verzijom koju želite koristiti, prvi korak bi trebao bit kontaktiranje autora i/ili developera koji je “zaslužan” za nekompatibilni kod.

Kako početi koristiti PHP 7 na Plus Hosting serverima?

PHP 7 je dostupan na svim SPRINT hosting paketima. Upute kako promijeniti verziju u cPanelu dostupne su u bazi znanja u članku PHP opcije.

Zaključak

Nadogradnja PHP verzije s 5.6 na 7.0 uključuje pažljivo provjeravanje kompatibilnosti, no prednosti nadogradnje na verziju 7 su više nego očite. PHP 7 radi mnogo brže nego verzija 5.6, vaše web stranice će na istom hardware-u trošiti manje resursa te bržim radom posjetiteljima vaše web stranice omogućiti ugodnije korisničko iskustvo.

Povezani članci

Odgovori