Sintaksia e hapësirave të emrave në OOP në PHP
Për të caktuar një hapësirë emrash për një klasë, duhet
në rreshtin e parë të skedarit, në të cilin ruhet kjo
klasë të shkruhet komanda namespace,
dhe pas saj përmes një hapësire - emri i kësaj
hapësire.
Nëse klasa i përket ndonjë hapësire emrash, atëherë për të krijuar një objekt të klasës do të duhet të specifikohet jo vetëm emri i klasës, por edhe hapësira e saj e emrave, të ndara me backslash Le të shohim një shembull.
Le të themi se kemi një klasë Page, që nuk i përket
asnjë hapësire emrash. Atëherë një objekt
i kësaj klase do ta krijojmë si më poshtë:
<?php
$page = new Page;
?>
Le të themi tani që kjo klasë i përket hapësirës
së emrave Admin. Në këtë rast, një objekt të kësaj
klase do ta krijojmë tashmë në këtë mënyrë:
<?php
$page = new \Admin\Page;
?>
Le t'i ndajmë klasat për përdoruesit dhe klasat për administratorët në hapësira të ndryshme emrash, për të shmangur konfliktet e përshkruara më sipër të klasave.
Për klasën Page nga skedari /admin/page.php
le të specifikojmë hapësirën e emrave Admin:
<?php
namespace Admin;
class Page
{
}
?>
Kurse për klasën Page nga skedari /users/page.php
le të specifikojmë hapësirën e emrave Users:
<?php
namespace Users;
class Page
{
}
?>
Tani le të krijojmë në skedarin /index.php
një objekt të klasës së parë dhe të dytë
Page:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
Le të themi se keni dosjen core dhe dosjen
project. Në secilën prej dosjeve ka klasën e vet
Controller. Bëni që
këto klasa t'i përkasin hapësirave të ndryshme
emrash. Në skedarin index.php krijoji objektet
e klasës së parë dhe të dytë.