개요
네임스페이스는 사물을 캡슐화하는 방법입니다. 이 추상적인 개념은 여러 곳에서 볼 수 있습니다. 예를 들어 운영 체제에서는 디렉터리가 관련 파일을 그룹화하는 데 사용됩니다. 디렉터리는 네임스페이스 역할을 합니다. 이 원칙을 프로그래밍 분야에 적용한 것이 네임스페이스의 개념입니다. PHP 5.3 이후 버전에서는 네임스페이스를 지원하기 시작합니다.
네임스페이스 정의
네임스페이스는 namespace
키워드로 선언됩니다. 모든 합법적인 PHP 코드는 네임스페이스에 포함될 수 있지만 클래스, 함수, 상수의 세 가지 유형만 네임스페이스의 영향을 받습니다.
네임스페이스를 선언하기 전에 유효한 유일한 코드는 소스 파일의 인코딩을 정의하는 declare
문입니다. 네임스페이스는 프로그램 스크립트의 첫 번째 문이어야 하며 공백을 포함하여 PHP가 아닌 모든 코드는 네임스페이스 선언 앞에 나타날 수 없습니다. 동일한 네임스페이스를 여러 파일에 정의할 수 있습니다.
하위 네임스페이스 정의
디렉터리와 파일의 관계와 마찬가지로 PHP에서는 계층적 네임스페이스를 지정할 수도 있습니다.
동일한 파일에 여러 네임스페이스 정의
PHP는 이 구문을 지원하지만 사용을 권장하지 않습니다. 동일한 파일에 여러 네임스페이스를 정의하는 구문 형식에는 두 가지가 있습니다. 하나는 간단한 상위 및 하위 목록이고 다른 하나는 중괄호를 사용하는 구문입니다. 두 번째 것을 사용하는 것이 좋습니다.
<code><?php declare(encoding = 'UTF-8'); namespace MyProject { /* MyProject */ } namespace { /* global */ }</code>
네임스페이스가 아닌 전역 코드를 네임스페이스 코드와 결합하려면 중괄호 구문만 사용할 수 있습니다.
네임스페이스 사용: 기본
네임스페이스를 사용하려면 PHP가 네임스페이스에서 사용할 요소를 어떻게 아는지 이해해야 합니다.
파일 시스템에는 파일에 액세스하는 세 가지 방법이 있습니다.
파일 시스템과 마찬가지로 PHP 네임스페이스에서도 클래스 이름을 세 가지 방법으로 참조할 수 있습니다. 네임스페이스 이름 정의를 이해해야 합니다.
Foo
. FooBar
. FooBar
. namespaceFoo
도 정규화된 이름입니다. 네임스페이스 및 동적 언어 기능
네임스페이스 구현은 언어 자체의 동적 특성에 영향을 받으며 때로는 정규화된 이름을 사용해야 합니다.
namespace
키워드 및 __NAMESPACE__
상수
상수 __NAMESPACE__의 값은 현재 네임스페이스의 이름을 포함하는 문자열입니다. 네임스페이스에 포함되지 않은 전역 코드에는 빈 문자열이 포함됩니다. 상수 __NAMESPACE__
는 이름을 동적으로 생성할 때 유용합니다.
키워드 namespace
는 현재 네임스페이스나 하위 네임스페이스의 요소에 명시적으로 액세스하는 데 사용할 수 있습니다. 클래스의 self
연산자와 동일합니다.
네임스페이스 사용: alias/import
Unix 계열 파일 시스템에서 다른 파일이나 디렉터리에 대한 심볼릭 링크를 만드는 방법과 유사하게 별칭을 통해 외부 정규화된 이름을 참조하거나 가져올 수 있습니다.
PHP 네임스페이스는 두 가지 별칭 또는 가져오기 방법을 지원합니다.
별칭을 가져오거나 사용하려면 use
연산자를 사용하여 한 줄에 여러 use
문을 지원합니다. 네임스페이스에 있는 이름의 경우 선행 백슬래시는 불필요하며 허용되지 않습니다. 가져온 이름은 정규화되어야 하고 현재 네임스페이스를 기준으로 확인되지 않기 때문입니다.
글로벌 공간
네임스페이스가 정의되지 않으면 모든 클래스와 함수가 전역 공간에 정의됩니다. 이름 앞에 가 붙으면 해당 이름이 전역 공간의 이름임을 나타냅니다.
네임스페이스 사용: 대체 전역 함수/상수
네임스페이스에서 PHP는 정규화되지 않은 클래스, 함수 또는 상수 이름을 발견하면 다른 연결 전략을 사용하여 이름을 확인합니다.
클래스 이름은 항상 현재 네임스페이스의 이름으로 확인되므로 시스템 내부 또는 네임스페이스에 포함되지 않은 클래스 이름에 액세스할 때는 정규화된 이름을 사용해야 합니다.
함수와 상수의 경우, 함수나 상수가 현재 네임스페이스에 없으면 PHP는 전역 공간의 함수나 상수를 사용하게 됩니다.
이름 확인 규칙
이름 확인 규칙에는 많은 텍스트가 포함되어 있으며 특정 문제에 대한 자세한 분석이 필요합니다.
(전문 종료)
위 내용은 네임스페이스 - PHP 매뉴얼 노트와 관련 내용을 소개한 내용으로, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.