PHP da OOP da Nomlar Fazosining Sintaksisi
Classga nomlar fazosini belgilash uchun,
ushbu class saqlanadigan faylning birinchi
qatorida namespace buyrug'ini yozish kerak,
va undan keyin bo'shliq bilan - ushbu
fazoning nomi.
Agar class qandaydir nomlar fazosiga tegishli bo'lsa, unda class ob'ektini yaratish uchun faqat class nomini emas, balki uning nomlar fazosini ham ko'rsatish kerak bo'ladi, ular teskari chiziqcha bilan ajratiladi. Keling, misolda ko'ramiz.
Aytaylik, bizda Page classi bor, hech qanday
nomlar fazosiga tegishli emas. Unda ushbu
classning ob'ektini quyidagicha yaratamiz:
<?php
$page = new Page;
?>
Endi esa, bu class Admin nomlar fazosiga tegishli deb faraz qilaylik. Bu holda ushbu
classning ob'ektini endi shunday yaratamiz:
<?php
$page = new \Admin\Page;
?>
Keling, foydalanuvchilar uchun classlar va admin uchun classlarni turli nomlar fazolariga ajratamiz, yuqorida tavsiflangan classlar to'qnashuvlarining oldini olish uchun.
/admin/page.php faylidagi Page
classi uchun Admin nomlar fazosini ko'rsatamiz:
<?php
namespace Admin;
class Page
{
}
?>
/users/page.php faylidagi Page classi
uchun esa Users nomlar fazosini ko'rsatamiz:
<?php
namespace Users;
class Page
{
}
?>
Keling endi /index.php faylida
bir va ikkinchi
Page classining ob'ektini yaratamiz:
<?php
require_once '/admin/page.php';
require_once '/users/page.php';
$adminPage = new \Admin\Page;
$usersPage = new \Users\Page;
?>
Faraz qilaylik, sizda core papkasi
va project papkasi bor. Har bir papkada o'zining
Controller classi mavjud. Ushbu classlar
turli nomlar fazolariga tegishli bo'lishi uchun qiling.
index.php faylida bir va ikkinchi classlarning
ob'ektlarini yarating.