PHP'de OOP İsim Alanları Sözdizimi

Bir sınıfa bir isim alanı atamak için, o sınıfın saklandığı dosyanın ilk satırına namespace komutunu yazmanız, ve ondan sonra bir boşlukla - bu isim alanının adını yazmanız gerekir.

Eğer bir sınıf herhangi bir isim alanına aitsa, sınıf nesnesi oluşturmak için yalnızca sınıf adını değil, aynı zamanda onun isim alanını da, ters eğik çizgi ile ayrılmış olarak belirtmemiz gerekecek. Bir örnek üzerinde görelim.

Bir Page sınıfımız olduğunu ve hiçbir isim alanına ait olmadığını varsayalım. Bu durumda bu sınıfın nesnesini şu şekilde oluştururuz:

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

Şimdi bu sınıfın Admin isim alanına ait olduğunu varsayalım. Bu durumda bu sınıfın nesnesini artık şu şekilde oluşturacağız:

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

Yukarıda açıklanan sınıf çakışmalarından kaçınmak için, kullanıcı sınıflarını ve yönetici sınıflarını farklı isim alanlarına ayıralım.

/admin/page.php dosyasındaki Page sınıfı için Admin isim alanını belirtelim:

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

Ve /users/page.php dosyasındaki Page sınıfı için Users isim alanını belirtelim:

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

Şimdi /index.php dosyasında birinci ve ikinci Page sınıfının nesnelerini oluşturalım:

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

Bir core klasörünüz ve bir project klasörünüz olduğunu varsayalım. Her klasörün kendi Controller sınıfı var. Bu sınıfların farklı isim alanlarına ait olmasını sağlayın. index.php dosyasında birinci ve ikinci sınıfların nesnelerini oluşturun.