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ë:

index.php<?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ë:

index.php<?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:

/admin/page.php<?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:

/users/page.php<?php
  namespace Users;
  
  class Page
  {
    
  }
?>

Tani le të krijojmë në skedarin /index.php një objekt të klasës së parë dhe të dytë Page:

index.php<?php
  require_once '/admin/page.php';
  require_once '/users/page.php';
  
  $adminPage = new \Admin\Page;
  $usersPage = new \Users\Page;
?>
Задание 1

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ë.