Névtér támogatás PHP-ben2007. október 1. 18.13

Kategóriák: Hírek

A híresztelések szerint a PHP5.3-as verziójával jön a névtér támogatás. De nézzük is meg mit is rejt ez valójában!

Kezdjük rögtön az elején! Mi az a namespace avagy magyarul a névtér :)

A névtér tulajdonképpen egy csoport azon azonosítóknak (változók, konstansok, függvény nevek stb) amik létezhetnek már egy másik fájlban, dokumentumban. Namespacek segítségével egyértelműen be tudjuk azonosítan, hogy melyik dokumentumban definiált azonosítót szeretnénk használni.

Hogyan került ez implementálásra a PHP-ben?

A névtereket PHP-ben szinte ugyanúgy fogjuk tudni használni mint nem példányosított objektumokat. Tehát a duplakettőspont jelzővel rudjuk jelölni a névtereinket.

Mézzünk egy gyakorlati példát:
datum.php:

  1. <?php
  2. namespace datumkezelo;
  3.  
  4. function megjelenit() {
  5. echo date('Y-m-d');
  6. }
  7. ?>

ido.php:

  1. <?php
  2. namespace idokezelo;
  3.  
  4. function megjelenit() {
  5. echo date('H:i');
  6. }
  7. ?>

index.php:

  1. <?php
  2.  
  3. require_once 'datum.php';
  4. import datumkezelo as datum;
  5.  
  6. require_once 'ido.php';
  7. import idokezelo as ido;
  8.  
  9. datum::megjelenit();
  10. ido::megjelenit();
  11. ?>

Mik a hátrányai?

  • Mivel nicsenek zárójelek ezért nem lehet egybeágyazott névtereket létrehozni
  • Ha több névteret helyezel el egy fájlba hibákat kapsz
  • Ha egy egyedi fordítót használsz ami a fájlokat egybe csomagolja szintén hibákat kapsz
  • Ha a projekted rendelkezik import függvénnyel mint pl itt: class Name { public function import(){ } } szintén hibákat kapsz
1 Csillag2 Csillag3 Csillag4 Csillag5 Csillag6 Csillag7 Csillag8 Csillag9 Csillag10 Csillag (3 szavazat, átlag: 6)
Loading ... Loading ...

Szólj hozzá!