Синтакса назива простора у ООП у PHP

Да бисте доделили класи назив простора, потребно је на почетку датотеке, у којој се та класа налази, написати наредбу namespace, а за њом кроз размак - назив тог простора.

Ако класа припада неком називу простора, тада за креирање објекта класе биће потребно навести не само име класе, већ и њен назив простора, одвојене обрнутом косом цртом. Погледајмо на примеру.

Претпоставимо да имамо класу Page, која не припада ниједном називу простора. Тада ћемо објекат ове класе креирати на следећи начин:

index.php<?php
  $page = new Page;
?>

Претпоставимо сада да ова класа припада називу простора Admin. У овом случају ћемо објекат ове классе креирати већ овако:

index.php<?php
  $page = new \Admin\Page;
?>

Раздвојимо класе за кориснике и класе за администраторе по различитим називима простора, како бисмо избегли горе описане сукобе класа.

За класу Page из датотеке /admin/page.php наведемо назив простора Admin:

/admin/page.php<?php
  namespace Admin;
  
  class Page
  {
    
  }
?>

А за класу Page из датотеке /users/page.php наведемо назив простора Users:

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

Креирајмо сада у датотеци /index.php објекат једне и друге класе Page:

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

Претпоставимо да имате директоријум core и директоријум project. У сваком од директоријума постоји своја класа Controller. Подесите тако да ове класе припадају различитим називима простора. У датотеци index.php креирајте објекте једне и друге класе.