POZOR! Článek jsem napsal před více jak rokem, a tudíž už nemusí reflektovat můj nynější názor nebo může být zastaralý.
Namespaces neboli jmenné prostory jsou v PHP dostupné od verze 5.3. Zatím jsem se jim úspěšně vyhýbal, ale před nedávnem jsem se rozhodl, že se ponořím do jejich tajů a své poznatky zde shrnu.
Jmenné prostory jdou ruku v ruce s objekty. Původně byly obsaženy ve vyspělejších jazycích jako Java nebo C#, které jsou především objektové. A jelikož má PHP od verze 5 vylepšenou podporu objektů, nemohli zde chybět. Ale abyste si nemysleli, že namespaces jdou použít jenom pro objekty, lze je využít také pro funkce, jejichž název koliduje s názvem již existujícím.
Definování namespaces
Definování namespaces lze provést dvěma způsoby. Jednak se složenými závorkami:
A také se středníkem:
V obou dvou případech lze definovat namespaces v jednom souboru i vícekrát. Pro přehlednost, při použítí více namespaces upřednostňuji složené závorky a když vím že v souboru jej definuji pouze jednou tak se středníkem.
Práce s namespaces
Příklad jednoduchého použití:
Priklad.class.php:
index.php:
Při úspešném spracování se vypíše konstanta __NAMESPACE__, ve které je uložen název použitého namespace. Pomocí klauzule use můžeme rovnou zajistit, aby se použila třída s namespace:
A nakonec lze použít klauzuli as pro alias:
Znáte někoho, komu by článek mohl pomoct? Zasdílejte mu ho :)