PHP OOP에서 네임스페이스 소개
PHP 스크립트 실행 시 이름이 같은 클래스가 두 개 있으면, 충돌이 발생하여 치명적인 오류가 발생합니다. 이는 실제로 매우 불편한데, 이름의 고유성을 지속적으로 확인해야 하기 때문입니다.
다음 상황을 예로 들어보겠습니다:
사용자와 관리자가 있는 웹사이트가 있습니다.
users 폴더에는 사용자를 위한 클래스가 저장되고,
admin 폴더에는 관리자를 위한 클래스가 저장됩니다.
사용자와 관리자 모두 사이트의 특정 페이지를 담당하는
어떤 Page 클래스가 필요하다고 가정해 보겠습니다.
사용자를 위한 클래스와 관리자를 위한 클래스가 각각 존재합니다.
이런 경우 이름 충돌 문제가 발생하게 됩니다.
이 충돌을 해결하는 가장 간단한 방법은 클래스 이름을 다르게 지정하는 것입니다.
예를 들어, UsersPage와 AdminPage와 같이 말이죠.
그러나 이 방법은 점차 매우 긴 클래스 이름이 생기게 만듭니다.
PHP에서는 이 문제를 해결하는 또 다른 방법이 있습니다. 바로 네임스페이스입니다. 핵심은 다음과 같습니다: 각 클래스는 특정 네임스페이스에 속할 수 있으며, 클래스 이름의 고유성은 해당 네임스페이스 내에서만 유지하면 됩니다.
즉, 우리의 문제를 해결하기 위해 다음과 같이 할 수 있습니다:
한 클래스 Page를 예를 들어 Users와 같은
어떤 네임스페이스에 속하게 하고,
두 번째 클래스 Page를 예를 들어 Admin와 같은
다른 네임스페이스에 속하게 하는 것입니다.