PHP 7 - prednosti korišćenja nove verzije PHP programskog jezika Idi do glavnog sadržaja

Prednosti korišćenja PHP verzije 7.x

Ž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 i shodno tome lakše izlazi na kraj s povećanim brojem poseta.

Web stranice bazirane na PHP-u poput WordPressa, Drupala, Joomle, Magenta ili PHP frameworka poput Laravela ili Symfonya dokazano rade brže koristeći poslednju stabilnu verziju PHP-a. Mnogi sistemi su već usklađeni sa standardima koje je uveo PHP 7-x, neki od njih, poput WordPressa, već sugerišu PHP 7.x kao preporučenu verziju PHP-a

P.S. Ništa ne brinite, nećemo vas forsirati da pređete na novu verziju. Kod nas su još uvek dostupne verzije PHP-a od 4.4 pa na više. Ono što želimo da uradimo, jeste da vam u ovom tekstu objasnimo prednosti novije verzije PHP-a, i zašto je ipak bolje da razmislite o prelasku na istu.

“PHP 7.x je samo broj kao i svaki drugi, neću da pređem!”

Da bi smo izbegli ovakve odgovore, odlučili smo da vam izložimo par činjenica zbog čega je ipak dobra ideja da pređete na novu verziju .

  • 69.6% programera je reklo da su spremni da koriste PHP 7.x u produkciji
  • Svega 3.8% programera su odbili da koriste PHP 7.x, pod izgovorom “Ukoliko me hosting kompanija uslovi da pređem na noviju verziju prećiću, inače ne.”
  • Preko 70% programera već uveliko koristi PHP 7.x kao njihovo programersko okruženje
  • PHP 7.x grubo rečeno, po poređenju performansi, radi skoro 2 puta bolje od verzije PHP 5.x

Deo koji se ne slaže sa prethodnim činjenicama smatramo da je sama praksa i neobaveštenost!

Da ne bi došlo do zabune ili nejasnoća odlučili smo da pojasnimo ova dva termina:

  • Praksa → “E, radi ovako kako je, nemoj ništa dirati i čačkati za tu tvoju PHP verziju!” i 10 dana kasnije, kako to već ide, upadne Pera haker kroz “rupu” u PHP 5.x verziji i upropasti sve. Da, bukvalno sve.
  • Nebaveštenost → “Nisam ni znao da postoji nova verzija i da to treba ažurirati”. Sasvim legitiman odgovor. Kao i sve ostale aplikacije, za računar/tablet/moblini uređaj, treba redovno ažurirati. Razlog je veoma jednostavan, ali i veoma bitan → sigurnost podataka i brzina rada aplikacije.

Malo istorije

PHP 5.x je objavljen 2004. godine. Dobro nas je služio. Ali, internet je vrlo dinamično mesto pa treba držati korak s trendovima, potrebama i zahtevima korisnika.

Tako je (nikad objavljena) verzija PHP 6.x trebala da uvede Unicode. Unicode je standard za razmenu podataka usmeren na prikaz slova na način nezavistan o jeziku, računarskom programu ili računarskoj platformi. S obzirom da je implementacija kompleksna i da su donešene neke loše odluke, (da ne spominjemo povećanje potrošnje memorije i povećanje potrošnje resursa), nakon ankete je donešena odluka da se verzija PHP 6.x jednostavno preskoči.

Početkom 2015. godine objavljena je prva alpha verzija PHP-a 7.x. Prva stabilna verzija (7.0.0.) objavljena je u decembru iste godine. Tačno godinu dana kasnije, u decembru 2016. godine objavljena je verzija PHP-a 7.1 , a već nepunih sedam meseci kasnije i PHP verzija 7.2.

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

Podaci o korišćenju

Po poznatim izvorima podataka, preko 70% web stranica baziranih na PHP-u još uvek koristi PHP 5.x. Tako W3Techs u statistici za mart 2019. godine donosi podatak da se verzija PHP 5.x koristi na 70.6% svih web stranica baziranih na PHP-u kao programskom jeziku.

WordPress kao najzastupljeniji CMS na internetu, u svojim statistikama korištenja za mart 2019. godine donosi podatak da 44.6% WordPress sajtova koristi PHP 7.x, što je brojka koja pokazuje siguran porast dela. Poređenja radi, udeo PHP 7 verzija je do pre dve godine bio svega nešto jače od 6.5%.

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 promenu sa PHP5.x na PHP7.x jeste povećanje brzine. Nezavisno koji benchmark alat koristili, PHP7.x je bolji po performansama od prethodnih verzija.

Na primeru ispod, WordPress 4.7.2 na PHP 5.6 transaction rate je bio 7.93 trans/sec dok je na PHP 7.0 transaction rate bio 11.73 trans/sec, što je razlika od 48% u korist PHP7.

Kako bi uporedili poboljšanje performansi, odlučili smo da uradimo nekoliko testova.
Na VPS serveru smo instalirali WordPress, Joomlu i WooCommerce, sa “dummy contentom“, bez aktivnog cache-iranja. 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 pre slanja novih reqestova), trajanje je 300 sekundi

WordPress

WordPress: 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

Apache 5.6
CPU 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

Apache requests 7.0
CPU 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
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

Apache requests 5.6
CPU 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

Apache requests 7.0
CPU 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
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

Apache requests 5.6
CPU 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

Apache requests 7.0
CPU 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 s
Shortest transaction: 0.56

Provera PHP kompatibilnosti

Svaka nova verzija PHP-a donosi poboljšanja, bugfix-eve, sigurnosne zakrpe, pa ponekad i promene u strukturi koda. Neke nadogradnje donose poboljšanja ili promene kojima pojedini delovi prethodnih verzija postaju zastareli. U nekim slučajevima cele verzije, kao na primer PHP 4 i starije verzije, više nisu podržane.

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

Na niže navedenim linkovima možete videti šta se promenilo u određenim verzijama PHP-a:

  • Migracija s PHP 4 na PHP 5.0.x
  • Migracija s PHP 5.0.x na PHP 5.1.x
  • Migracija s PHP 5.1.x na PHP 5.2.x
  • Migracija s PHP 5.2.x na PHP 5.3.x
  • Migracija s PHP 5.3.x na PHP 5.4.x
  • Migracija s PHP 5.4.x na PHP 5.5.x
  • Migracija s PHP 5.5.x na PHP 5.6.x
  • Migracija s PHP 5.6.x na PHP 7.0.x
  • Migracija s PHP 7.0.x na PHP 7.1.x
  • Migracija sa PHP 7.1.x na PHP 7.2.x
  • Migracija sa PHP 7.2.x na PHP 7.3.x

Osim ručnog pregledanja koda vaše web stranice, posao možete prepustiti pluginovima koji skeniraju vašu web stranicu i upozoravaju vas na eventualne greške u kompatibilnosti koda. Na primer, 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đe kreira izveštaj iz kojeg možete iščitati šta točno treba popraviti.

Ako pronađete plugin, temu ili skriptu koja nije kompatibilna sa PHP verzijom koju želite da koristite, prvi korak bi trebalo da bude kontaktiranje autora i/ili developera koji je “zaslužan” za nekompatibilni kod.

Kako ažurirati PHP na Plus Hosting serverima?

Nova verzija je dostupna na svim Shared hosting, kao i Reseller paketima. Kako promeniti verziju PHP-a? Veoma jednostavno, putem cPanel i aplikacije “Select PHP Version”.

Zaključak

Nadogradnja PHP verzije sa 5.x na 7.x uključuje pažljivo proveravanje kompatibilnosti, ali prednosti nadogradnje na su više nego očigledne.

Nova verzija radi mnogo brže nego PHP 5.x, stoga će veb stranice na hardware-u trošiti mnogo manje resursa i osetno bržim radom posetiocima vaše veb stranice omogućiti ugodnije korisničko iskustvo.


Ostavite odgovor