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:
<?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:
<?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:
<?php
namespace Admin;
class Page
{
}
?>
A dla klasy Page z pliku /users/page.php
określmy przestrzeń nazw Users:
<?php
namespace Users;
class Page
{
}
?>
Stwórzmy teraz w pliku /index.php
obiekt jednej i drugiej
klasy Page:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
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.