PHP OOP의 네임스페이스 상대 경로

파일 index.php에서 다음과 같은 호출이 발생한다고 가정해 보겠습니다:

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

이미 알고 계시듯이, 클래스를 참조할 때 해당 네임스페이스 앞에 역슬래시를 붙여야 합니다. 사실 이것은 필수가 아닙니다. 이 슬래시를 작성하지 않으면 호출되는 네임스페이스는 현재 네임스페이스에 대해 상대적으로 계산됩니다. 예를 참고하세요:

index.php<?php
  namespace Admin\Data;
  
  new Core\Controller; // \Admin\Data\Core\Controller와 동일함
?>
Задание 1

두 개의 클래스가 주어졌습니다:

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

우리 클래스들의 네임스페이스가 일부 공통 부분을 공유한다는 점을 고려하여, 클래스 상속을 위한 코드를 간소화하세요.

Задание 2

두 개의 클래스가 주어졌습니다:

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

다음은 파일 index.php에서 이 클래스들의 객체를 생성하는 방법입니다:

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

객체가 생성되는 네임스페이스를 고려하여, 객체 생성을 위한 코드를 간소화하세요.