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:
<?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:
<?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:
<?php
namespace Admin;
class Page
{
}
?>
Za razred Page iz datoteke /users/page.php
pa navedimo imenski prostor Users:
<?php
namespace Users;
class Page
{
}
?>
Zdaj pa v datoteki /index.php
ustvarimo objekt prvega in drugega
razreda Page:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
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.