>  기사  >  백엔드 개발  >  PHP 네임스페이스 시작하기

PHP 네임스페이스 시작하기

WBOY
WBOY원래의
2016-08-08 09:29:41938검색

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

"네임스페이스란 무엇입니까? 넓게 말하면 네임스페이스는 사물을 캡슐화하는 방법입니다. 여러 곳에서 찾을 수 있습니다. 예를 들어 운영 체제에서는 디렉터리가 관련 파일을 그룹화하는 데 사용됩니다. 디렉터리에 있는 파일의 경우 파일과 같은 역할을 합니다. foo.txt는 /home/greg 및 /home/other 디렉터리에 모두 존재할 수 있지만 두 개의 foo.txt 파일이 동일한 디렉터리에 존재할 수는 없습니다. 또한 /home/greg 디렉토리 외부에서 foo.txt 파일에 액세스할 때 /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. 매우 긴 식별자 이름의 경우(일반적으로 첫 번째 유형의 문제를 완화하기 위해 정의됨) 소스 코드의 가독성을 높이기 위해 별칭(또는 짧은) 이름을 만듭니다. >

현재 매우 인기 있는 Composer는 네임스페이스 패키지 관리자/종속성 관리자를 기반으로 합니다. 마찬가지로 오늘날 Laravel의 성공은 주로 PHP5.3의 인기에 힘입은 것입니다. , 적시에 일어난 일입니다. https://packagist.org/에서 다운로드할 수 있습니다. yum, npm 또는 gem과 유사한 작곡가 패키지입니다.

4. 몇 가지 팁

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

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

3. PHP에는 고급 기능이 있지만 Laravel은 자동 로딩(autoload)을 위해 classmap 메소드를 사용합니다. , 그러나 이것은 단지 논리적 관계일 뿐이므로 요구 파일은 여전히 ​​필요합니다. 이 클래스와 파일 사이의 해당 관계는 /vendor/composer/autoload_classmap.php에 존재합니다. , Composer dump-autoload는 매번 다시 컴파일되고 생성됩니다. 출처: http://lvwenhan.com/php/401.html

이상으로 PHP 네임스페이스에 대한 소개와 내용을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.