Namespaces – Jmenné prostory

Publikováno PHP

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:


Komentáře