PHP-те ООП-тағы namespace синтаксисі

Классқа namespace беру үшін, сол класс сақталған файлдың бірінші жолында namespace бұйрығын жазу керек, одан кейін бос орын арқылы - осы namespace-тің атауын жазу керек.

Егер класс қандай да бір namespace-ке жататын болса, онда класс объектісін жасау үшін тек класс атауын ғана емес, сонымен қатар оның namespace-ін де, кері слеш бөлінген түрде көрсету қажет болады. Мысал арқылы қарастырайық.

Бізде Page класы бар делік, ол ешбір namespace-ке жатпайды. Онда бұл класс объектісін былай жасаймыз:

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

Енді бұл класс Admin namespace-іне жатады делік. Бұл жағдайда бұл класс объектісін біз келесі түрде жасаймыз:

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

Пайдаланушыларға арналған классдар мен әдістерге арналған классдарды жоғарыда сипатталған классдар қақтығысынан аулақ болу үшін, оларды әр түрлі namespace-терге бөлейік.

/admin/page.php файлындағы Page класы үшін Admin namespace-ін көрсетейік:

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

Ал /users/page.php файлындағы Page класы үшін Users namespace-ін көрсетейік:

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

Енді /index.php файлында бірінші және екінші Page класының объектісін жасайық:

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

Сізде core бумасы және project бумасы бар делік. Бумалардың әрқайсысында өз Controller класы бар. Бұл классдардың әр түрлі namespace-терге жататындай етіп жасаңыз. index.php файлында бірінші және екінші классдардың объектілерін жасаңыз.