Nové PHP 5.4 vylepšuje výkon a přidává žádané novinky

Ať už je PHP vaše denní rutina nebo jen koníček, měli byste zbystřit. Nová verze 5.4 přináší spoustu užitečných změn a odstraňuje zbytečnosti.

Po téměř třech letech vyšla další významná verze skriptovacího jazyka PHP, tenkrát 5.4. Zvyšuje rychlost, přináší nové možnosti a zjednodušuje zápis polí. Místy navíc dolaďuje předchozí verzi PHP 5.3 z léta 2009.

Nové možnosti

  • Zjištění průběhu nahrávání souboru – pomocí session lze zjistit, kolik procent souboru  bylo nahrálo; již tedy není nutné spoléhat například na flashové doplňky
  • Součástí E_ALL je konečně také E_STRICT
  • Zkrácený tvar při vytváření polí: $a = [1, 2, 3, 4]; nebo $a = ['one' => 1, 'two' => 2];
  • json_encode() – JSON_PRETTY_PRINT dokáže vypsat obsah v lépe čitelném tvaru, při použití JSON_UNESCAPED_SLASHES nebudou přidána zpětná lomítka před standardní lomítka a JSON_NUMERIC_CHECK zajistí převod číselných řetězců na čísla
  • Možnost dereference: foo()[0]
  • Anonymní funkce (closures) podporují $this
  • Zápis <?= je již vždy dostupný; bez ohledu na nastavenou hodnotu short_open_tag
  • Zápis binárního formátu, např. 0b001001101
  • Vylepšeny chybové zprávy a varování při nekompatibilních argumentech
  • Podpora „Traits
  • OpenSSL podporuje AES
  • SNM má objektové API
  • Přidáno $_SERVER['REQUEST_TIME_FLOAT'] udávající čas s přesností na mikrosekundy

Na webu se dočtete další podrobnosti ohledně nových možností.

Zpětná (ne)kompatibilita

Před přechodem na novou verzi věnujte čas k nastudování nekompatibilních změn. Zde je seznam těch nejdůležitějších:

  • Safe mode již není podporovaný (v PHP 5.3 byl ve výchozím nastavení vypnutý)
  • Odstraněny algoritmy Salsa10 a Salsa20
  • get_magic_quotes_gpc() a get_magic_quotes_runtime() vždy vrací hodnotu FALSE
  • Změna chování isset() a empty() při práci s řetězci
  • Převod pole na řetězec nyní vyvolá varování E_NOTICE
  • Pokud do funkce array_combine() předáte dvě prázdná pole, nově je vráceno array(), namísto FALSE
  • Zavrženými funkcemi se nově stávají: mysql_list_dbs(), get_magic_quotes_gpc(), get_magic_quotes_runtime() a mcrypt_generic_end()

Další podrobnosti naleznete v seznamu nekompatibilních změn a informacích o přechodu na novou verzi.

Vyšší výkon

Na webu vývojářů také naleznete několik testů, které porovnávají PHP 5.3 a PHP 5.4. V některých případech došlo až k 50 % zrychlení. Jen okrajově, ternární operátor je nyní při vracení polí mnohem výkonnější (operace již neprovádí přímo nad poli), zrychlení se dočkal Zend Engine, funkce unserialize() a výkonnější je také zpracování požadavků FastCGI.

Vývojáři opravili desítky chyb, všemožných změn a nových možností a parametrů je více než dost. Důkladně si proto projděte seznam úprav, kde naleznete všechny potřebné informace. Mezi nimi například i tu, že PHP 5.4 je poslední verze, která podporuje Windows XP a 2003.

A jak už bývá zvykem, nyní budou půl roku vycházet záplaty a po dalším půl roce začne být nová verze 5.4.x zajímavá pro reálné nasazení. Na běžných webhostinzích se začne objevovat opět pomalu, takže na opravdový přechod je ještě minimálně rok a půl čas.

Diskuze (18) Další článek: Servery v roce 2011: nejvíce prodalo HP, nejvyšší příjmy má IBM

Témata článku: , , , , , , , , ,