Szerző: Gálffy Csaba

2015. július 13. 14:31:00

Jön a PHP 7 - kemény lesz

Már elkészült a PHP 7 első bétája, ebből az alkalomból gyorsan végignéztük, hogy milyen változásokat hoz a nyelv legújabb iterációja. Érdemes kapaszkodni, komoly váltásnak ígérkezik a főverzió.

HIRDETÉS

Gyorsan közeledik az új PHP-verzió októberre kitűzött kiadási határideje, az első tesztverziók után immár kipróbálható az első béta állapotú szoftver is - jelentették be a fejlesztők. Most elkészült a PHP 7.0.0 beta 1, amely az első alfa kiadáshoz képest rengeteg hibát javít, valamint funkcionalitásában is kiegészült, így (a hibáktól eltekintve) már azt tudja, mint amit a végleges kiadás tud majd.

Ez nagy váltás lesz

A PHP 7 egyik legfontosabb újdonsága az AST (Abstract Syntax Tree), amely a kódfordítás egyik köztes állapota lesz, a parser nem állítja elő közvetlenül a gépi kódot. Az AST bevezetése teljesen leválasztja a parsert és a fordítót, és kettejük közé egy új, szabványos réteget helyez. Ezzel lehetővé válik olyan képességek bevezetése, mint a tömbök destrukturálása, stb. a fejlesztők várakozásai szerint az AST használata hatékonyabb gépi kódot eredményez, miközben rengeteg inkonzisztenciát eltüntet a platform rétegei között.

Ennél sokkal láthatóbb változás lesz az Uniform Variable Syntax bevezetése. Ennek célja egy teljesen konzisztens és teljes változószintaktika bevezetése, amely kiküszöböli a többféleképp értelmezhető forráskódot, és új, korábban nem létező képességeket vezet be (például statikus lánchívások). A fejlődésnek azonban nagy ára van, az új, egységes szintaktikához a meglévő kódbázist is módosítani kell ahhoz, hogy az új szabványnak megfeleljen.

A változások által érintett szintakszis ugyan nem volt széles körben elterjedt, gyakorlatilag minden népszerű PHP-alkalmazásban van rá példa bőven, így esélytelen, hogy az eddig használt szoftverek hibátlanul működjenek az új platformon. Öröm az ürömben, hogy a kompatibilitási problémákat mutató szoftverek viszonylag egyszerűen átírhatóak lesznek az új szintaktikára - legalábbis ezt ígérik a fejlesztők.

A PHP 7-tel kikerül a nyelvből minden olyan képesség, amelyet az előző, 5.3-5.5-ös kiadásban már nem számított támogatottnak (deprecated státuszt kapott), de az előző verziókban még kompatibilitási okokból bennmaradt. Ez keményen érinti a MySQL-kiterjesztést (mysql_ kezdetű függvényeket), ezek helyett a MySQLi könyvtárat kell használni az adatbázis-művelekethez, illetve ott a PDO, az egységes adatbázis-interfész is. Szintén kikerülnek a POSIX-kompatibilis regexek, helyettük a Perl-kompatibilis regexek használatosak. Ezeket a változásokat már hosszú ideje bejelentették a fejlesztők, érkezésük senkit nem érhet igazán meglepetésként.

De mit nyújt cserébe a PHP 7?

Az új verzió mellett szóló legfontosabb érv a magas teljesítmény lesz. Az új verzió alapjául szolgáló futtatómotor is átalakul, pontosabban teljesen lecserélődik. A PHPNG (PHP Next Gen) látványos sebességnövekedést ígér, a futtatott szoftvertől függően 25-70 százalékos gyorsulásra lehet számítani. A CPU-terhelés csökkentését túl a memóriaigényt is sikerült csökkenteni a belső adatstruktúrák áttervezésével. Az optimalizálás folyamatosan zajlik, a nyílt forráskódú motoron számtalan fejlesztő dolgozik, így októberig (és nyilván az után is) még tovább gyorsulhat.

Egyszerűbb, nem?

A PHP 7-tel a nyelv is kap új képességeket, a visszatérési értékek típusai kapták a legnagyobb figyelmet a fejlesztés során. Az új kiadásban ugyanis meghatározhatjuk, hogy pontosan milyen visszatérési értéket várunk, ez pedig az előzőektől eltérően skaláris (string, int, bool, float) is lehet. Emellett megjelent a strict mód is, amellyel kikényszeríthető a típusok azonossága. Egy másik ötletes újdonság a kombinált összehasonlító operátor, amely két változó értékét összehasonlítva azonnal küld választ, függetlenül annak típusától.

Visszafelé nem megy

A fentiek alapján egyértelmű, hogy a PHP 7 fontos hozadéka a visszafelé kompatibilitás megbontása lesz - ezért is találó az új főverzió. A PHP eddig sem számított a gyorsan frissítő-gyorsan fejlesztő ökoszisztémák közé, nagy kérdés, hogy a tágabb közösség hogyan fogja fogadni a PHP 7-et és mennyi időbe kerül, amíg teljesen ki tudja majd váltani a jelenlegi 5.x verziókat.

Az optimista szakértők szerint ugyanakkor a PHPNG pontosan elegendő érv lesz arra, hogy elkezdjenek frissíteni a kisebb szereplők is. A magasabb teljesítmény ugyanis azt jelenti majd a hosting-oldalon, hogy ugyanakkora erőforrással több oldal szolgálható ki, ez pedig készpénzre lefordítható előnyt jelent azoknak, akik frissítenek.

a címlapról