PHP-ში OOP-ის ნეიმსფეისების სინტაქსი

კლასისთვის ნეიმსფეისის მისანიჭებლად, საჭიროა ფაილის, რომელშიც ეს კლასია შენახული, პირველ სტრიქონზე დაწეროთ ბრძანება namespace, ხოლო მის შემდეგ გამოტოვებით - ამ ნეიმსფეისის სახელი.

თუ კლასი ეკუთვნის რომელიმე ნეიმსფეისს, მაშინ კლასის ობიექტის შესაქმნელად საჭირო იქნება მიუთითოთ არა მხოლოდ კლასის სახელი, არამედ მისი ნეიმსფეისიც, გამოყოფილი უკუ ხაზით. მოდით, მაგალითზე ვნახოთ.

დავუშვათ, გვაქვს კლასი Page, რომელიც არ ეკუთვნის არცერთ ნეიმსფეისს. მაშინ ამ კლასის ობიექტს შევქმნით შემდეგნაირად:

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

დავუშვათ, ახლა ეს კლასი ეკუთვნის ნეიმსფეისს Admin. ამ შემთხვევაში ამ კლასის ობიექტს ჩვენ უკვე ასე შევქმნით:

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

მოდით, მომხმარებლებისთვის და ადმინისტრატორებისთვის განკუთვნილ კლასებს სხვადასხვა ნეიმსფეისებში გადავანაწილოთ, რათა თავიდან ავიცილოთ ზემოთ აღწერილი კლასების კონფლიქტები.

კლასისთვის Page ფაილიდან /admin/page.php მივუთითოთ ნეიმსფეისი Admin:

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

ხოლო კლასისთვის Page ფაილიდან /users/page.php მივუთითოთ ნეიმსფეისი Users:

/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. გახადეთ ისე, რომ ეს კლასები სხვადასხვა ნეიმსფეისებს ეკუთვნოდნენ. ფაილში index.php შექმენით ერთი და მეორე კლასების ობიექტები.