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:

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

Endi esa, bu class Admin nomlar fazosiga tegishli deb faraz qilaylik. Bu holda ushbu classning ob'ektini endi shunday yaratamiz:

index.php<?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:

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

/users/page.php faylidagi Page classi uchun esa Users nomlar fazosini ko'rsatamiz:

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

Keling endi /index.php faylida bir va ikkinchi Page classining ob'ektini yaratamiz:

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

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.