PHP-də OOP-də Adlar Fəzasının Sintaksisi
Bir sinifə adlar fəzası təyin etmək üçün,
həmin sinifin saxlandığı faylın birinci sətri kimi
namespace əmrini yazmaq lazımdır,
ondan sonra isə boşluqla - bu fəzanın adını.
Əgər sinif hansısa adlar fəzasına aiddirsə, onda sinif obyektini yaratmaq üçün yalnız sinfin adını deyil, həm də onun adlar fəzasını, tərs çəpi ilə ayrılmış şəkildə göstərmək lazımdır. Gəlin bir nümunəyə baxaq.
Tutaq ki, bizim heç bir adlar fəzasına aid olmayan
Page sinfimiz var. Onda bu sinfin obyektini
aşağıdakı kimi yaradarıq:
<?php
$page = new Page;
?>
İndi tutaq ki, bu sinif Admin adlar fəzasına aiddir.
Bu halda bu sinfin obyektini artıq aşağıdakı kimi yaradarıq:
<?php
$page = new \Admin\Page;
?>
Gəlin yuxarıda təsvir olunan siniflərin toqquşmasının qarşısını almaq üçün, istifadəçilər üçün olan sinifləri və adminlər üçün olan sinifləri müxtəlif adlar fəzalarına ayıraq.
/admin/page.php faylındakı Page sinfi üçün
Admin adlar fəzasını göstərək:
<?php
namespace Admin;
class Page
{
}
?>
/users/page.php faylındakı Page sinfi üçün isə
Users adlar fəzasını göstərək:
<?php
namespace Users;
class Page
{
}
?>
Gəlin indi /index.php faylında
hər iki Page sinfinin obyektini yaradaq:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
Tutaq ki, sizin core qovluğunuz və
project qovluğunuz var. Hər bir qovluqda öz
Controller sinfi var. Elə edin ki,
bu siniflər müxtəlif adlar fəzalarına aid olsunlar.
index.php faylında hər iki sinfin obyektlərini yaradın.