Prednosti uporabe PHP verzije 7.x

Vsi razvijalci in lastniki spletnih strani si želijo, da bi njihove strani delovale brezhibno in hitro, da ne bi porabljale preveč strežniških virov in bi se lahko spopadle tudi z večjim obiskom.

Sistemi, ki temeljijo na PHP-ju (npr. WordPress, Drupal, Joomla, Magento), ter t.i. PHP framework-i (Larva, Symfony) dokazano delujejo hitreje na najnovejši stabilni verziji PHP. Večina sistemov je že usklajena s standardi, ki jih je uvedel PHP 7, nekateri (npr. WordPress) pa za uporabo že priporočajo PHP 7.

Kratka zgodovina

PHP 5 je bil objavljen 13 let nazaj ter še vedno dobro služi svojemu namenu. A ker so spletna mesta dinamična, morajo slediti trendom in zahtevam uporabnikov.

Zato je morala različica PHP 6 uvesti Unicode. Unicode je standard za izmenjavo podatkov, namenjen izpisu znakov in sicer tako, da je neodvisen od računalniškega programa ali platforme. Različica ni bila zaradi kompleksne implementacije, povečanja porabe pomnilnika ter vpliva na delovanje, nikoli objavljena.

Zato je bila začetek 2015 objavljena prva (alfa) verzija PHP 7. Prva stabilna verzija je bila objavljena decembra istega leta. Točno leto kasneje, decembra 2016, pa je bila izdana verzija 7.1.

Objavljen je bil tudi seznam odstranjenih funkcij, ki vam pomaga pri prehodu iz PHP 5 na PHP 7. Prav tako je na voljo seznam odstranjenih API-jev in razširitev.

Podatki o uporabi

W3Techs je v statistiki za marec 2017 zapisal, da različico 5 uporablja 95,6 % vseh spletnih strani. Do danes se je ta odstotek zmanjšal na 90,5 %.

Skoraj 22 % najbolj priljubljenega CMS-ja WordPress v oktobru 2017 teče na PHP 7.

Delovanje

Eden od najpomembnejših razlogov za prehod na PHP 7 je povečanje hitrosti delovanja spletne strani. Spodnja slika prikazuje izboljšanje hitrosti delovanja WordPress strani, ki deluje na PHP 5.6. ter na PHP 7.

Da bi preverili in potrdili izboljšanje delovanja, smo se odločili za izvedbo več testov. Na VPS strežnik smo namestili WordPress, Joomlo in WooCommerce, s testnimi vsebinami brez aktivnega predpomnenja. Več o metodologiji in rezultatih spodaj.

Test

Hardware in software

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

Metoda testiranja

Siege -c 20 -v -t 300s -i – f url file Vključenih je 20 istočasnih uporabnikov, v t.i. internet mode (čakamo na čas odgovora pred pošiljanjem novih zahtevkov), trajanje je 300 sekund

WordPress

WordPress: verzija 4.7.2 Vtičniki: 0 Tema: Twenty Seventeen verzija 1.1 Vsebina: WordPress theme test data

URL-ji

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

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

 

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: Version 3.6.5 Stable Moduli/Vtičniki: brez Tema: Protostar Vsebina: Getting started, Hello World

URL-ji

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

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

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

WordPress: verzija 4.7.2 Vtičniki: WooCommerce verzija 2.6.13 Tema: Storefront verzija 2.1.7 Vsebine: WordPress theme test data + WooCommerce Dummy Data

URL-ji

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

 

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

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

Preverba združljivosti PHP verzij

Vsaka nova različica PHP prinese s sabo mnoge izboljšave in popravke napak, včasih pa tudi spremembe v strukturi kode. Nekatere nadgradnje prinašajo izboljšave ali spremembe, zaradi katerih so deli prejšnjih različic zastareli. V nekaterih primerih tako celotna različica (npr. PHP 4) ni več podprta.

Če uporabljate dodatke, teme ali skripte, ki se sklicujejo na zastarelo PHP kodo, lahko pride ob nadgradnji na novejšo različico PHP do težav v delovanju zaradi nezdružljivosti stare kode. Zato je potrebno pred nadgradnjo na novejšo različico PHP raziskati stanje strani in preveriti, ali je nadgradnja sploh primerna rešitev.

Na povezavi si lahko preberete, kaj se je spremenilo v nekaterih različicah PHP.

Spletno stran lahko pregledate ročno, lahko pa delo prepustite vtičnikom, ki vas opozorijo na morebitne težave v združljivosti. Za pregled WordPress strani lahko uporabite vtičnike:

  • PHP Compatibility Checker – omogoča izbiro različice PHP in iskanje nezdružljivosti na spletnem mestu. Ustvari tudi poročilo, iz katerega lahko razberete, kaj je potrebno urediti.
  • PHP Pseudo Compiler – orodje za preverjanje PHP, ki preveri nedefinirane funkcije in metode.

Če najdete vtičnik, temo ali skripto, ki ni združljiva z novo različico PHP, se obrnite na avtorja / razvijalca, ki je »zaslužen« za nekompatibilno kodo.

PHP 7 na strežnikih Domovanja

PHP 7 je na voljo na vseh novih paketih gostovanja. Navodila za spremembo različice.

Zaključek

Nadgradnja iz PHP 5.6 na PHP 7 zahteva skrbno preverbo kompatibilnosti. A prednosti nadgradnje na PHP 7 so več kot očitne: hitrejše delovanje, manj porabljenih virov na isti strojni opremi in posledično boljša uporabniška izkušnja obiskovalcev vaše spletne strani.

Podobni članki