Składnia przestrzeni nazw w OOP w PHP

Aby przypisać klasie przestrzeń nazw, należy w pierwszej linii pliku, w którym jest przechowywana ta klasa, napisać komendę namespace, a po niej przez spację - nazwę tej przestrzeni.

Jeśli klasa należy do jakiejś przestrzeni nazw, to aby utworzyć obiekt klasy, trzeba będzie podać nie tylko nazwę klasy, ale i jego przestrzeń nazw, oddzielone odwrotnym śląshem. Spójrzmy na przykład.

Załóżmy, że mamy klasę Page, nienależącą do żadnej przestrzeni nazw. Wtedy obiekt tej klasy utworzymy w następujący sposób:

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

Załóżmy teraz, że ta klasa należy do przestrzeni nazw Admin. W tym przypadku obiekt tej klasy będziemy tworzyć już w ten sposób:

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

Rozdzielmy klasy dla użytkowników i klasy dla administratora na różne przestrzenie nazw, aby uniknąć opisanych powyżej konfliktów klas.

Dla klasy Page z pliku /admin/page.php określmy przestrzeń nazw Admin:

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

A dla klasy Page z pliku /users/page.php określmy przestrzeń nazw Users:

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

Stwórzmy teraz w pliku /index.php obiekt jednej i drugiej klasy Page:

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

Załóżmy, że masz folder core i folder project. W każdym z folderów jest własna klasa Controller. Zrób tak, aby te klasy należały do różnych przestrzeni nazw. W pliku index.php utwórz obiekty jednej i drugiej klasy.