Skladnja imenskih prostorov v OOP v PHP

Če želite razredu določiti imenski prostor, morate v prvo vrstico datoteke, v kateri je ta razred shranjen, napisati ukaz namespace, in za njim presledek - ime tega prostora.

Če razred spada v kakšen imenski prostor, potem boste morali za ustvarjanje objekta razreda določiti ne samo ime razreda, ampak tudi njegov imenski prostor, ločen z obratno poševnico. Poglejmo si primer.

Recimo, da imamo razred Page, ki ne spada v noben imenski prostor. Takrat bomo objekt tega razreda ustvarili na naslednji način:

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

Recimo zdaj, da ta razred pripada imenskemu prostoru Admin. V tem primeru bomo objekt tega razreda ustvarili na naslednji način:

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

Razdelimo razrede za uporabnike in razrede za skrbnike po različnih imenskih prostorih, da se izognemo zgoraj opisanim konfliktom razredov.

Za razred Page iz datoteke /admin/page.php navedimo imenski prostor Admin:

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

Za razred Page iz datoteke /users/page.php pa navedimo imenski prostor Users:

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

Zdaj pa v datoteki /index.php ustvarimo objekt prvega in drugega razreda Page:

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

Recimo, da imate mapo core in mapo project. V vsaki od map je svoj razred Controller. Poskrbite, da bodo ti razredi pripadali različnim imenskim prostorom. V datoteki index.php ustvarite objekte prvega in drugega razreda.