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에서 두 클래스의 객체를 생성하세요.