>백엔드 개발 >PHP 튜토리얼 >thinkphp 네임스페이스 사용 예에 ​​대한 자세한 설명

thinkphp 네임스페이스 사용 예에 ​​대한 자세한 설명

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-07-29 09:08:231020검색

이 기사의 예에서는 thinkphp 네임스페이스의 사용법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

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

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

namespace Org\Util;
class File {
}

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

코드 복사코드는 다음과 같습니다.

$class = new OrgUtilFile();


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

루트 네임스페이스는 매우 중요한 개념입니다. 위의 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 {
}

thinkPHP 프레임워크 기반의 PHP 프로그램을 사용하는 모든 분들에게 이 글이 도움이 되기를 바랍니다.

$class =  new \stdClass();
$sxml =  new \SimpleXmlElement($xmlstr);

위 내용은 내용적인 측면을 포함하여 thinkphp 네임스페이스 사용 예시에 대한 자세한 설명을 소개하고 있어 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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