PHP'de OOP'de İsim Alanlarında Göreli Yollar

Diyelim ki index.php dosyasında aşağıdaki çağrı yapılıyor:

index.php<?php
  namespace Admin\Data;
  
  new \Core\Controller;
?>

Bildiğiniz gibi, bir sınıfa erişirken onun isim alanının önüne ters eğik çizgi yazmak gerekir. Aslında bu zorunlu değildir. Bu eğik çizgi yazılmazsa, çağrılan isim alanı mevcut isim alanına göre hesaplanacaktır. Örneğe bakın:

index.php<?php
  namespace Admin\Data;
  
  new Core\Controller; // \Admin\Data\Core\Controller ile eşdeğerdir
?>
Задание 1

İki sınıf verilmiştir:

php<?php
  namespace Modules\Shop\Core;
  
  class Cart
  {
    
  }
?>
php<?php
  namespace Modules\Shop;
  
  class UserCart extends \Modules\Shop\Core\Cart
  {
    
  }
?>

Sınıf miras alma kodunu, sınıflarımızın isim alanlarının örtüşen kısımlarını dikkate alarak basitleştirin.

Задание 2

İki sınıf verilmiştir:

php<?php
  namespace Core\Data;
  
  class Controller
  {
    
  }
?>
php<?php
  namespace Core\Data;
  
  class Model
  {
    
  }
?>

Bu sınıfların nesneleri index.php dosyasında şu şekilde oluşturuluyor:

index.php<?php
  namespace Core\Data;
  
  $controller = new \Core\Data\Controller;
  $model      = new \Core\Data\Model;
?>

Nesnelerin oluşturulduğu isim alanını dikkate alarak, nesne oluşturma kodunu basitleştirin.