>  기사  >  백엔드 개발  >  PHP 네임스페이스에 대한 자세한 설명 및 적용

PHP 네임스페이스에 대한 자세한 설명 및 적용

*文
*文원래의
2017-12-25 12:01:202112검색

많은 초보자는 네임스페이스나 적용 방법을 이해하지 못할 수 있습니다. 이 글은 PHP 네임스페이스의 사용법을 설명할 것입니다. 이 글이 모든 사람에게 도움이 되기를 바랍니다.

1. PHP에서 네임스페이스란 무엇인가요?

네임스페이스란 무엇인가요? "넓게 말하면 네임스페이스는 사물을 캡슐화하는 방법입니다. 이 추상적인 개념은 여러 곳에서 볼 수 있습니다. 예를 들어 운영 체제에서 디렉터리는 관련 파일을 그룹화하는 데 사용됩니다. 디렉터리에 있는 파일의 경우 디렉터리 역할을 합니다. 예를 들어 foo.txt 파일은 /home/greg 및 /home/other 디렉터리에 있을 수 있지만 / 디렉터리 외부의 foo.txt 파일에 액세스할 때 두 개의 foo.txt 파일이 동일한 디렉터리에 존재할 수 없습니다. home/greg의 경우 /home/greg/foo.txt를 얻으려면 파일 이름 앞에 디렉터리 이름과 디렉터리 구분 기호를 넣어야 합니다. 이 원칙은 네임스페이스로서의 프로그래밍 분야에 적용됩니다.”——네임스페이스 개요

2 . PHP 네임스페이스를 이해하는 방법은 무엇입니까?

기본적으로 네임스페이스는 컨테이너입니다. 클래스, 함수 및 변수를 이 컨테이너에 넣을 수 있으며 동일한 네임스페이스에서 무조건 서로 액세스할 수 있습니다. 네임스페이스 외부에 포함된 항목을 호출하려면 다른 네임스페이스를 참조하거나 가져와야 합니다.

네임스페이스의 개념은 셸의 파일 디렉터리와 동일합니다. 현재 디렉터리의 모든 파일에 파일 이름으로 직접 접근할 수 있습니다. 다른 디렉터리에 있는 파일에 접근하려면 상대 경로나 절대 경로를 입력해야 합니다.

참조 방법:

namespace foo;
 class Foo {   
         public function foo()   
             {        
                  return \top\namespace\bar\Bar::fuck();    
              }
             }


가져오기 방법:

namespace foo; 
use top\namespace\bar\Bar; 
 class Foo {
        public function foo() 
            {        return Bar::fuck();  
            }
           }

가져오기는 대상 클래스를 현재 네임스페이스에 복사하는 것과 같습니다.

3. PHP 네임스페이스의 실제 적용은 무엇입니까?

네임스페이스는 다음 두 가지 문제를 해결하기 위해 존재합니다:

1) 사용자가 작성한 코드와 PHP 내부 클래스/함수/상수 또는 타사 클래스/함수/상수 간의 이름 충돌.

2) 소스 코드의 가독성을 높이기 위해 매우 긴 식별자 이름(일반적으로 첫 번째 유형의 문제를 완화하기 위해 정의됨)에 대한 별칭(또는 짧은) 이름을 만듭니다.

4. 몇 가지 팁

1. 같은 공간의 수업은 서로 직접 통화하며 같은 가족에 속합니다. 예를 들어, Laravel의 PageController 클래스에서는 Page::all()과 같은 코드를 직접 작성하여 Page 모델을 호출할 수 있습니다. 둘 다 최상위 네임스페이스 아래에 있기 때문입니다.

2. 클래스가 최상위가 아닌 네임스페이스에 존재하는 경우 "참조" 또는 "가져오기" 없이 현재 네임스페이스의 다른 클래스만 호출할 수 있습니다. 모든 하위 네임스페이스는 컨테이너 간의 관계 외에는 특별한 관계가 없는 또 다른 네임스페이스, 또 다른 컨테이너입니다.

3. Laravel은 자동 로딩(autoload)을 위해 classmap 메소드를 사용합니다. PHP에는 네임스페이스라는 고급 기능이 있지만 이는 논리적 관계일 뿐이며 require 파일이 여전히 필요합니다. 이 클래스와 파일 간의 해당 관계는 /vendor/composer/autoload_classmap.php에 존재하며, 이는 Composer dump-autoload가 실행될 때마다 다시 컴파일되고 생성됩니다.


관련 권장 사항:

PHP 자동 로딩 및 네임스페이스에 대한 애플리케이션 요약

PHP 네임스페이스, 특성 및 생성기에 대한 관련 소개

201 7가지 필수 학습 프레임워크 초보자를 위한 준비사항: Thinkphp5 프레임워크 튜토리얼


의 네임스페이스에 대한 자세한 설명

위 내용은 PHP 네임스페이스에 대한 자세한 설명 및 적용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.