Hosting, hostingy, webhosting, přehled webhostingů, přehled hostingů Novinky ze světa domén, hostingu a internetu

11.
JUN

PHP 5.3 – začněte se připravovat

Do kategorie freehosting, novinky, serverhosting, webhosting přidal admin,

PHP se pomalu ale jistě dostává do dlouho očekávané verze 5.3. V současné době je vydaný druhý release candidate, na třetím, pravděpodobně posledním, se pracuje. Jaké novinky PHP5.3 přináší a jaké problémy můžeme očekávat?

Jmenné prostory

PHP5.3 (konečně) zavádí jmenné prostory, takže u rozsáhlých aplikací nebude docházet ke zbytečným kolizím.  Jmenné prostory se definují pomocí klíčového slova namespace, které lze použít na začátku skriptu. Více úrovní lze oddělit zpětným lomítkem:

namespace prostor\podprostor;

Při používání prvků ve jmenném prostoru se na ně odkazuje obdobně, případně lze použít klíčové slovo use [as] a zkrátit tak zápis. Více viz manuál (pozor, není ještě plně aktualizován a na některých místech používá starý způsob oddělení jmenných prostorů – čtyřtečku).

S novým rezervovaným slovem namespace se pojí možná nekompatibilita – pokud jej používáte například pro název třídy, v PHP5.3 narazíte na problém. Týká se to například populární MediaWiki, která s PHP5.3 zatím kompatibilní není.

Late Static Binding aneb objekty napodruhé a pořádně

Druhá důležitá změna je o něco komplikovanější na vysvětlení:


class A {
public static function show() {
echo self::foo();
}
public static function foo() {
return "A";
}
}class B extends A {
public static function foo() {
return "B";
}
}A::show(); //A
B::show(); //A

V případě statického volání nelze v současném PHP žádným způsobem zjistit, jaká třída byla skutečně volána. Všechny způsoby vždy vrací třídu, ve které je příslušná statická metoda implementovaná. Od verze 5.3 bude možné toto zajistit použitím keywordu static namísto self.

Zkrácená evaluace

Zkrácená evaluace znamená zkrácený zápis:

$a=($value ?: 'default');

namísto současného:

$a=($value ? $value : 'default');

Tento velmi praktický operátor tedy vrací výraz před operátorem, pokud byl vyhodnocen jako true, v opačném případě vrací výraz uvedený za operátorem.

V PHP5.3 najdeme samozřejmě spoustu dalších novinek – například anonymní funkce nebo nové magické metody. Podívejme se ale na to, co nás z pohledu webhostingu zajímá nejvíce.

Kompatibilita PHP5.3

Skripty by měly být s PHP5.3 v zásadě kompatibilní. Skripty nesmí samozřejmě používat nové rezervované keywordy namespace, goto, closure.

Nově si bude PHP stěžovat u použití funkcí z rodiny ereg () – patří sem například i split() – které jsou nyní označeny za zastaralé a budou vyhazovat E_DEPRECATED.

Velmi podstatné je z hlediska webhostingu označení některých “bezpečnostních” konfiguračních direktiv za zastaralé a s tím spojené warningy. E_DEPRECATED tak bude vyhazovat také konfigurace se zapnutým safe_mode, register_globals nebo magic_quotes_gpc.

Jen čas ale ukáže, zda se PHP5.3 skutečně stane definitivním hrobařem safe_mode na webhostinzích.

Starší komentáře

  1. Roman Kaly |

    Oni to možná ještě stihnou. Už je venku RC4 (mezi RC3 a RC4) nebyl snad ani týden a pokud nebudou problémy, do týdne slibujou stable!

Blog Hostingy.cz is powered by Wordpress.

Improve Your Life, Go The myEASY Way™