>  기사  >  백엔드 개발  >  thinkphp에서 네임스페이스 사용

thinkphp에서 네임스페이스 사용

不言
不言원래의
2018-06-09 09:32:181560검색

이 글은 thinkphp 네임스페이스의 사용법을 주로 소개하고, thinkPHP 네임스페이스의 기능과 구체적인 사용 기법을 예제 형식으로 자세히 분석합니다. 도움이 필요한 친구들이 참고할 수 있습니다

이 글의 예제에서는 thinkphp 네임스페이스의 사용법이 설명되어 있습니다. . 참조를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

새 버전(3.2)에서는 네임스페이스를 사용하여 클래스 라이브러리 파일을 정의 및 로드하고, 여러 모듈 간의 충돌을 해결하며, 보다 효율적인 자동 로딩 메커니즘을 구현합니다.

클래스 라이브러리가 위치한 네임스페이스를 정의해야 합니다. 클래스 라이브러리 파일의 디렉터리와 일치해야 클래스가 자동으로 로드됩니다. 예를 들어 OrgUtilFile 클래스는

로 정의됩니다.
namespace Org\Util;
class File {
}

파일이 위치한 경로는 ThinkPHP/Library/Org/Util/File.class.php이며, 이 클래스를 다음과 같이 인스턴스화합니다.

$class = new \Org\Util\File();

시스템이 위 파일을 자동으로 로드하므로 가져올 필요가 없습니다. 네임스페이스에 정의된 클래스를 인스턴스화하기 전에 클래스 라이브러리 파일을 삭제하세요.

루트 네임스페이스는 매우 중요한 개념입니다. 위의 OrgUtilFile 클래스를 예로 들면 Org는 루트 네임스페이스이고 해당 초기 네임스페이스 디렉터리는 시스템의 클래스 라이브러리 디렉터리인 ThinkPHP/Liberary입니다. . 디렉터리는 자동으로 루트 네임스페이스로 인식되며, 이러한 네임스페이스는 등록 없이 사용할 수 있습니다.

Library 디렉토리 아래에 My 루트 네임스페이스 디렉토리를 추가한 후 다음과 같이 Test 클래스를 정의합니다.

namespace My;
class Test
{
   public function sayHello()
  {
    echo 'hello';
  }
}

ThinkPHP/Liberary/My/Test.class.php에 테스트 클래스를 저장하고 직접 인스턴스화할 수 있습니다.

$Test = new \My\Test();
$Test->sayHello();

를 호출하는 모듈의 클래스 라이브러리 네임스페이스는 모듈 이름을 따라 명명됩니다. 예:

namespace Home\Model;
class UserModel extends \Think\Model
{
}

클래스 파일은 Application/Home/Model/UserModel.class.php에 있습니다.

namespace Admin\Event;
class UserEvent {
}

클래스 파일은 Application에 있습니다. /Admin/Event/ UserEvent.class.php

버전 3.2.1 이상에서는 애플리케이션 클래스 라이브러리에 네임스페이스를 사용하지 않도록 설정할 수 있습니다. 구성 파일의 설정은 다음과 같습니다.

'APP_USE_NAMESPACE'    =>    false,

이런 방식으로 네임스페이스 정의는 없습니다. 애플리케이션 클래스 라이브러리에는 더 이상 필요하지만 상속 및 핵심 클래스 라이브러리를 호출할 때는 여전히 네임스페이스를 사용해야 합니다. 예를 들어 네임스페이스 AdminModel은 더 이상 다음 애플리케이션 클래스 라이브러리에 작성되지 않습니다. 버전 3.2에서는 PHP 내장 클래스 라이브러리나 타사를 인스턴스화해야 합니다. 네임스페이스를 사용하여 정의되지 않은 클래스의 경우 다음 방법을 사용해야 합니다.

class UserModel extends \Think\Model {
}

위 내용이 이 글의 전체 내용이기를 바랍니다. 모든 분들의 학습에 도움이 될 것입니다. 더 많은 관련 내용을 보시려면 PHP 중국어 웹사이트를 주목해주세요!

관련 권장 사항:

thinkPHP5.0 프레임워크의 전체 아키텍처 개요 [애플리케이션, 모듈, MVC, 드라이버, 동작, 네임스페이스 등]

thinkPHP의 Html 템플릿 태그 사용 방법


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

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