PHP में OOP नेमस्पेस सिंटैक्स

किसी क्लास को नेमस्पेस निर्दिष्ट करने के लिए, उस फ़ाइल की पहली लाइन में, जिसमें वह क्लास स्टोर है, namespace कमांड लिखनी होगी, और उसके बाद एक स्पेस के साथ - उस नेमस्पेस का नाम।

यदि कोई क्लास किसी नेमस्पेस से संबंधित है, तो क्लास ऑब्जेक्ट बनाने के लिए केवल क्लास का नाम ही नहीं, बल्कि उसका नेमस्पेस भी उल्टे स्लैश से अलग करके निर्दिष्ट करना होगा। आइए एक उदाहरण से देखते हैं।

मान लीजिए कि हमारे पास एक क्लास Page है, जो किसी भी नेमस्पेस से संबंधित नहीं है। तो इस क्लास का ऑब्जेक्ट हम इस प्रकार बनाएंगे:

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

मान लीजिए कि अब यह क्लास Admin नेमस्पेस से संबंधित है। इस स्थिति में इस क्लास का ऑब्जेक्ट हम इस प्रकार बनाएंगे:

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

आइए उपयोगकर्ताओं और एडमिन के लिए क्लासेस को अलग-अलग नेमस्पेस में विभाजित करें, ताकि ऊपर वर्णित क्लास संघर्षों से बचा जा सके।

फ़ाइल /admin/page.php से क्लास Page के लिए, हम Admin नेमस्पेस निर्दिष्ट करेंगे:

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

और फ़ाइल /users/page.php से क्लास Page के लिए, हम 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 में एक और दूसरे क्लास के ऑब्जेक्ट बनाएं।