Osobní stránky

Novinky v PHP 5.4

Update: PHP 5.4 bylo vydáno 1. března 2012. Oficiální oznámení zde: http://www.php.net/archive/2012.php#id2012-03-01-1

Blíží se finální vydání programovacího jazyka PHP verze 5.4. Chtěl bych tedy představit, na jaké novinky se můžeme v nové verzi těšit a co můžeme čekat.

Vestavěný webový server

Nejzajímavější novinkou v PHP 5.4 je pro mne bezesporu vestavěný webový server. Abyste si na svém stroji mohli vyzkoušet webové stránky v PHP, museli jste si dříve stáhnout Apache nebo jiný z webových serverů, ten nainstalovat, správně nakonfiguravat a až poté jste si mohli stránky zobrazit.

S tím je nyní konec, stačí vám pouze v terminálu spustit příkaz:

php -S localhost:8080

Tímto příkazem nastartujeme PHP, tak aby běželo joko webový server na adrese localhost a na portu 8080. Nemusíe stahovat žádný další program.

Příklad výstupu PHP serveru:

PHP 5.4.0RC7-dev Development Server started at Sun Jan 29 16:40:49 2012
Listening on localhost:8080
Document root is /home/skvaros/test
Press Ctrl-C to quit.
[Sun Jan 29 16:40:55 2012] 127.0.0.1:46713 [200]: /
[Sun Jan 29 16:40:55 2012] 127.0.0.1:46714 [404]: /favicon.ico - No such file or directory

Navíc můžeme vyvíjet aplikace, které poběží na uživatelském stroji a ke svému běhu potřebují jen čistou instalaci PHP.

Traity

PHP nepodporuje vícenásobnou dědičnost, to znamená, že třída může dědit od maxímálně jedné třídy. Jazyk C++ vícenásobnou dědičnost umožňuje, ale tento způsob často vede k velmi rozsáhlé třídě s mnoha nepotřebnými metodami.

Traity mají nahradit vícenásobnou dědičnost. Jedná se o zcela novou jazykovou konstrukci. Traity vypadají podobně jako třídy nebo rozhraní s metodami uvozené klíčovým slovem trait. Ve třídě, která traity využívá, určíte, které traity se mají použít. Nejlépe je vše vidět na příkladu:

trait ezcReflectionReturnInfo {
    function getReturnType() { /* 1 */ }
    function getReturnDescription() { /*2*/ }
}

class ezcReflectionMethod extends ReflectionMethod {
    use ezcReflectionReturnInfo;
    /* ... */
}

Třída ezcReflectionMethod nyní bude obsahovat obě metody z traitu ezcReflectionReturnInfo a zároveň bude dědit od třídy ReflectionMethod. Více se můžete dočíst v oficiálním manuálu PHP.

Zkrácený zápis polí

Se vzrůstající popularitou formátu JSON se PHP inspirovalo ve zkrácené možnosti zápisu polí. V PHP 5.4 budeme schopni vedle klasického array pole vytvářet i následovně:

$a = [1, 2, 3];
$b = ['foo': 'orange', 'bar': 'apple', 'baz': 'lemon'];

Jedná se jen o zkrácení syntaxe, ale rozhodně se jedná o příjemnou změnu.

Binární zápis čísel

Pro zápis šestnáctkové soustavy se v PHP používá prefix 0x. Číslo 18 se tak dá zapsat jako 0x12. Pro osmičkovou soustavu se používá prefix 0, číslo 022 tedy bude převedeno na 18.

Nově se k těmto prefixům přidal nový 0b, který se používá pro binární zápis čísel. Můžeme tedy číslo 18 zapsat jako 0b10010.

Další změny

Nová verze mimo výše zmiňované změny obsahuje řadu menších změn jako opravy chyb, nahrazení některých funkcí anebo změna parametrů funkcí. Po vydání ostré verze PHP 5.4 budou všechny zveřejněny na této manuálové stránce.

Nová verze PHP by měla vyjít co nevidět. Myslím si, že všechny změny v nové verzi jsou zajímavé, užitečné a vedou správnou cestou. Pro mne je nejzajímavější novinkou vestavěný webový server, který umožní jednodušší vývoj aplikací. Nyní musíme jen počkat, než bude nová verze dostatečně otestovaná v provozu a až se dostane na servery u hostingů a do linuxových distribucí.

Jakub Škvára


Jakub je cestovatel, blogger a webový vývojář. Zajímá se především o technické novinky a rád navštěvuje konference. Používá: Symfony2 Framework, AngularJS, NodeJS, MongoDB a další moderní technologie. Aktuálně žije v Londýně.