Naujoji PHP 7 versija, pakeisianti 5-ąją, buvo pristatyta 2015 gruodžio 3d. Daugeliui kyla klausimas o kur gi šešta versija? Ji buvo pradėta, bet taip ir neišvydo dienos šviesos, o liko kažkur anapus vidurį proceso, kūrėjai nusprendė nepainioti šių dviejų versijų ir išleisti PHP 7. Ši nauja PHP versija yra pusantrų metų darbo rezultatas, todėl būtų sunku išsamiai papasakoti visas naujienas. Galime aptarti svarbiausias. Šia proga apžvelgsime, kas slypiasi po PHP 7 versijos etiketės naujovėmis. Pastarųjų metų patobulinimai ženkliai pagerino PHP našumą. Susidomėjusi PHP, profesionalų bendruomenė sukūrė papildomus įrankius, kurie palengvino šios programavimo kalbos zend variklio naudojimą bei programų priežiūrą.

PHP 7: dvigubai spartesnė nei PHP 5.6 ir naudoja daug mažiau atminties

PHP kūrėjo Rasmuso Lerdorfo atlikti bandymai atskleidė, kad PHP 7 balandžio mėnesį parodė tokius pačius rezultatus, kaip ir HHVM… Taigi HHVM kūrėjai grįžo prie savo įranko plėtojimo.

php7-pajegumo rezultatai

 

Testas buvo atliktas pajungiant mažyti skriptą kuris atliko 833 GET užklausas su  bandomaisiais duomenimis ir patikrinta kaip greitai tai veikia tarp PHP5.6 ir PHP7 ant tos pačios virtualios mašinos 5 kartus. Nors testas ir gana paprastas jis atlieka tik vieną funkciją siunčia GET užklausas, neįrašinėja į duomenų bazę, nekešuoja duomenų, tik įvykdo kodą bet jis aiškiai parodo kad PHP7  veikia žymiai greičiau nei kad PHP5.6 su operacijomis kurioms frontendas dirba labiausiai. Šis testas nebuvo niekaip užturbintas, visa tai ko jums reikia yra PHP7.

php-7-dar vienas atminties testas

Sekančiame teste buvo matuojamas masyvų sukūrimo atminties sunaudojimas ir greitis.

 

Nauji palyginimų būdai.

Pirmasis: “<=>” galimi 3 atsakymo variantai, 0 – jeigu salyga yra lygi, 1 jei kairysis variantas didesnis ir -1 jei dešinysis didesnis. Antrasis: “??” naudojamas kai norėsite ką nors patikrinti ar egzistuoja ir jeigu ne, grąžinti reikšmę pagal nutylėjimą. Pvz.:

1
$user = $_GET['user'] ?? 'Guest';

 

Grąžinamoms funkcijoms bus galima nurodyti koks tai duomenų tipas:

1
2
3
function foo(): array {
  return[];
}

 

Anoniminių klasių naudojimas.

Dauguma objektiškai orientuotų kalbų tokią galimybę turi jau senai. Anoniminės klasės kai kada galės pagreitinti programavimo procesą, ypač naudingos tada kai klasė bus panaudojama tik 1 kartą ir nereikia galvoti jokio jos pavadinimo.

1
2
3
4
5
var_dump( new class($name) {
  public function __construct($name) {
    $this->name = $name;
  }
} );

 

Pašalinti „Alternative PHP tags“

Šitie dalykai mano manymu buvo visai nereikalingi o ir jų naudojimas nebuvo labai paplitęs, kai kuriuose serveriuose juos reikdavo papildomai įjungti arba prašinėti kodą kad jis veiktų kur jie nėra palaikomi.

 

Ir dar šiek tiek pabaigai

PHP kalboje niekada nebuvo lengva “gaudyti” klaidas, naujasis Engine Exceptions programines klaidas leis pakeisti būtent try/catch metodais, kitu atveju viskas veiks kaip ir dabartinėje 5.x. Taip pat verta paminėti jog naujasis EngineException objektas neapkeistas į seną Exception, taip paliekant suderinamumą su programomis parašytomis senesne PHP versija. Viso gero „holy wars“ tarp POSIX ir PCRE „regular expressions“ mėgėjų – jūsų PHP pasaulyje daugiau nebus. Taipat atsisakyta ir mysql išplėtimo, šis jau visai atgyveno. Atsirado vienintelė ir subendrinta kintamųjų sintaksė, nauji „Null Coalesce“ operatoriai, masyvai-konstantos, Exception on Constructor, Catchable Fatal Errors bei anoniminės klasės!

Norėdami atsisiųsti PHP7  ištekliaus kodą apsilankykite php.net atsisiuntimų puslapyje, Windows failai yra patalpinti adresu windows.php.net/download/. Pasikeitimų sąrašas yra patalpintas ChangeLog’e.

Jeigu kas nors turite kokių nors problemų atsinaujinant į PHP 7 versiją galite kreiptis komentaruose pagalbos 🙂

0 atsakymų

Palikti atsakymą

Want to join the discussion?
Feel free to contribute!

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *