Tech

Helló, a nevem PHP 7 (és nem 6)

By July 15, 2014 No Comments

A jelenlegi stabil kiadás verziószáma PHP 5.6. Vita tárgya volt a fejlesztői csapaton belül, hogy a következő főverzió elnevezésekor átugranák a PHP 6-ot. Ilyen névvel ugyanis már futott korábban egy kísérleti projekt, amiből végül sohasem lett kész termék.

Hogy az elnevezéssel kapcsolatos kavarodásoknak elejét vegyék, a legújabb nagy kiadás a PHP 7 nevet kapta.

 

Vadiúj motor

 

A PHP 4-es kiadásától kezdődően, 1999-től a PHP-t a Zend Engine hajtja. A Zend – nem összekeverendő a Zend Frameworkkel! – egy nyíltforrású, C nyelven írt végrehajtó motor, ami a PHP kód értelmezésért felelős. A PHP 5.X a Zend Engine II-t használja, mely elődjéhez képest több funckióval rendelkezik, és ami a jelentős teljesítménynövekedés mellett még egy extensible object modelt is hozott.

 

A PHP 7 ennek a motornak a PHP#NG (Next Generation) fedőnévre hallgató új verzióját kapja meg.

Kétszer gyorsabb

 

Az PHPNG mortor elsőként szembetűnő újdonsága a jelentősen megnőtt teljesítmény. A fejlesztők a Zend Engine kódjának átstruktúrálásával figyelemre méltóan optimalizálták a memóriafelhasználást.

 

A PHP 7 használatával nem csak a gyorsabban fut le a kód, hanem azonos felhasználó kiszolgálásához kevesebb szerveridő is elegendő lesz.

 

Megkönnyíti a hibakezelést

 

Finoman szólva is, a PHP-programozók számára sok fejtörést okoz a  “fatal error” és a “catchable fatal error” hibák kezelése. Az új Engine Exceptions segítségével ezek a hibák kivételekkel helyettesíthetőek. Ha egy kivételt nem kapnak el, a PHP ugyanazzal a fatal erroral tér vissza, mint az 5-ös főverzióban.

Az új EngineExceptions objektumok nem növelik azException Base osztályt. Ezzel egyrészt biztosított a visszafelé kompatibilitás, másrészt a hibakezelésben két új típusú kivételt is eredményez: traditional exception és engine exception.

A PHP 7-ben jelenik meg új megosztott szülő osztály (shared Parent Class) \BaseException néven.

Támogatja a 64 bites Windows operációs rendszereket

 

A PHP a Lamp Stack prominens tagja, ami egyben azt is jelenti, hogy a Linux a természetes közege – de futtatható Windows rendszeren is. A PHP 5 még nem nyújtott támogatást a 64 bites egész számokhoz vagy nagy állományokhoz. Az x64-es kiadások eddig csak kísérleti státuszban léteztek.

 

A PHP 7-től kezdődően ez megváltozik. Ettől fogva a PHP hivatalosan támogatja a 64 bites egész számok, illetve nagy állományok használatát, valamint a PHP-kód a 64 bites Windows rendszereken is futtatható lesz a jövőben.

 

Pontos típusdeklarációk

 

Volt már úgy, hogy a bizonyos return értékek elkerülése érdekében egy függvény return értékét akartad deklarálni? Az új PHP 7-es verziójában a fejlesztők deklarálhatják a return érték típusát is.

 

A PHP 7-tel négy új típusdeklaráció is érkezik a skalár típusokhoz. Ezek az int, float, string és bool. Az új skalár típusokkal a fejlesztők jelezhetik, hogy integer, float, string vagy boolean típusra számítanak, mint return érték.

 

Az új skalár típusok szintén élvezik a paraméterek típuskényszerítésének (Type Hint) támogatását, amely már az 5-ös főverzió óta fejlesztők rendelkezésére áll.

 

Anonim osztályok

 

A PHP 7-ben megjelenik a más objektum-orientált programnyelvekben – mint pl. a C# és a Java –  már jól bevált anonim osztály. Ez nem más, mint egy olyan osztály, aminek nincs neve. Az általa létrehozott objektum pontosan ugyanazokkal a tulajdonságokkal rendelkezik, mint egy névvel rendelkező osztály objektuma.

 

A szintaxis sem túl bonyolult. Pontosan úgy néz ki, mint a tradícionális PHP osztályok, épp csak az osztály elnevezése hiányzik. Jól alkalmazott anonim osztályok nem csak magát a kódolást, de a kód végrehajtását is gyorsabbá teszik. Az anonim osztályok különösen jó szolgálatot tesznek olyan esetekebn, mikor egy osztályt egy programfuttatás alatt csak egyszer kell használni, vagy amikor az adott osztályt nem is szükséges dokumentálni.

 

Könnyebb import azonos névtérből

 

Az új Group Use Declarations funkciót azok fogják értékelni, akik sok osztályt szándékoznak azonos névtérből importálni. Az új szintaxis  csökkenti az információ mennyiségét (verbosity), rendezettebb, jól átlátható kódot eredményez, és sok gépelési időt is megspórol.

 

A Group Use deklarációk segítenek az azonos modulokhoz tartozó importok azonosításában, így könnyebb lesz a kódot átnézni, és a hibákat kiszúrni is.

 

Takarítás!

A PHP célkitűzése volt, hogy helyet szabadítson fel a fejlődéshez, így muszáj volt megválni néhány elavult funkciótól és öreg, már nem támogatott szerver API-tól illetve kiegészítőtől. Ezekről itt és itt találni bővebb információt.

 

Az eltávolított elemek már a PHP 5-ben is elavultak voltak, tehát nagy a valószínűsége, hogy ezeket már jó ideje nem is használtad. Ennek ellenére észben kell tartanod, hogy ha korábbi PHP verzióra írodott programot futtatsz, az a PHP 7 alatt elképzelhető, hogy nem fog működni.