Nachádzate sa tu

Block title
Block content

PHP 7 = web na "steroidoch"

Od decembra môžete na svojich weboch hostovaných na webhostingu od HostingHouse.sk prepnúť na jednu z nových verzii PHP 7.0 a 7.1 V tomto blogposte sa preto pozrieme na výber noviniek a zlepšení v PHP 7.

Novinky v PHP 7

Výkon

Jednou z najdôležitejších noviniek v PHP 7 je zrýchlenie, ktoré bolo umožnené optimalizovanou správou pamäte a novou implementáciou JIT kompilátora, ktorý umožňuje kompiláciu kódu za behu. Vďaka tomu je nové PHP ultra rýchle a menej pamäťovo náročné. Podľa samotných autorov PHP, sa reálne zrýchlenie pohybuje medzi 20% až 70% [Zdroj: PHPNG a New Core for PHP7]. Načítanie domovskej stránky CMS Wordpress je v PHP 7 o 60% rýchlejšie . Tím pracujúci na novej verzii PHP zverejnil niekoľko grafov s porovnaním výkonu jednotlivých verzií PHP [Zdroj: Turbocharging the Web with PHP 7].

Typová kontrola parametrov funkcií

Hneď po zlepšeniach vo výkone je jednou z najdôležitejších noviniek typová kontrola. V PHP 7 je možné aktivovať typovú kontrolu parametrov funkcií a vynútiť tak použitie nasledovných typov: string, int, float alebo bool.

function add(int $a, int $b) {
 
    return $a + $b;
}

Typová kontrola sa aktivuje pomocou funkcie declare() nasledovne:

 declare(strict_types=1);

V prípade aktivovanej typovej kontroly a nesprávneho typu parametra funkcie skončí skript s chybou: Argument passed to add() must be of the type integer, …

Typová kontrola návratových hodnôt funkcií

Pri typovej kontrole návratových hodnôt je možné vynútiť rovnaké typy ako pri kontrole parametrov. Typová kontrola návratových hodnôt je v základe vypnutá a je potrebné ju aktivovať pomocou declare():

declare(strict_types=1);

function add( $a, $b) : int {
 
    return $a + $b;
}

Nové operátory

Trojcestný operátor <=>

$a <=> $b

Nový trojcestný operátor (<=>) vracia –1 ak je $a menšie ako $b, 0 ak je $a rovné $b, a 1 ak je $a väčšie ako $b.

Operátor ??

Operátor (??) vracia svoj prvý operand ak existuje a nemá hodnotu null, inak vracia svoj druhý operand.

$myuser = $user ?? 'anonymous';

Anonymné triedy

Anonymné triedy sa zídu ak potrebujeme jednoduché jednoúčelové objekty.

$util->setLogger(new class {
    public function log($msg)
    {
        print $msg;
    }
});

Nová syntax kľúčového slova use

V PHP7 bola zavedená skupinová deklarácia, ktorá skracuje kód v prípade importovania niekoľkých tried z rovnakého menného priestoru.

use some\namespace\{ClassA, ClassB, ClassC as C};

Celočíselné delenie

Nová funkcia intdiv() vykonáva celočíselné delenie, jej prvým parametrom je deliteľ a druhým delenec.

print intdiv(9, 4);

Pred prechodom na novú verziu

Pred prechodom na novú verziu PHP si dôkladne overte či verzia CMS, ktorú aktuálne používate na svojom webe podporuje nové PHP. Nezabudnite overiť aj všetky rozšírenia a témy, ktoré používate. Posledné verzie populárnych CMS ako Drupal a Wordpress PHP 7 plne podporujú.

Komentáre