>PHP 프레임워크 >ThinkPHP >Thinkphp 프레임워크 확장 등 라이브러리 확장 작업 분석

Thinkphp 프레임워크 확장 등 라이브러리 확장 작업 분석

coldplay.xixi
coldplay.xixi앞으로
2020-06-09 11:43:522920검색

Thinkphp 프레임워크 확장 등 라이브러리 확장 작업 분석

Thinkphp 프레임워크 확장 등 클래스 라이브러리 확장 작업에 대한 자세한 설명

이 글에서는 주로 Thinkphp 프레임워크 확장 및 기타 클래스 라이브러리 확장 작업을 소개하고, Thinkphp 클래스 라이브러리의 관련 원리와 구현을 분석합니다. 확장을 예제 형식으로 제공합니다. 방법 및 작업 주의 사항은 필요한 친구들이 참고할 수 있습니다.

이 문서에서는 Thinkphp 프레임워크 확장과 같은 라이브러리 확장 작업의 예제를 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

라이브러리 클래스 확장

ThinkPHP의 클래스 라이브러리에는 주로 네임스페이스를 기반으로 정의되고 확장되는 공용 클래스 라이브러리와 애플리케이션 클래스 라이브러리가 포함됩니다. 사양에 따라 정의하면 자동 로딩이 가능합니다.

공용 라이브러리 클래스

공용 클래스 라이브러리는 일반적으로 ThinkPHP/Library 디렉토리 아래의 클래스 라이브러리를 참조합니다. 예:

Think 디렉토리: 시스템 코어 클래스 라이브러리
Org 디렉토리: 타사 공용 클래스 라이브러리

이러한 디렉터리 다음 클래스 라이브러리는 해당 클래스 라이브러리를 디렉터리에 넣은 다음 네임스페이스 정의를 추가하거나 수정하기만 하면 됩니다. Org/Util/ 디렉터리 아래에 Image.class.php 파일을 추가한 후 다음과 같이 네임스페이스를 추가할 수 있습니다.

namespace Org\Util;
class Image {
}

이런 방법으로 다음과 같은 방법으로 Image 클래스를 직접 인스턴스화할 수 있습니다.

$image = new \Org\Util\Image;

추가로 이러한 디렉터리에 ThinkPHP/Library 디렉터리 아래에 자신만의 클래스 라이브러리 디렉터리를 추가할 수 있습니다. 예를 들어 엔터프라이즈 클래스 라이브러리 확장을 위한 Com 디렉터리를 추가합니다:

ComSinaApp 클래스(Com/Sina/App.class.php에 위치)

namespace Com\Sina;
class App {
}

ComSinaRank 클래스(Com/Sina/Rank.class.php에 있음)

namespace Com\Sina;
class Rank {
}

시스템의 라이브러리 디렉토리 외에도 공용 클래스 라이브러리는 애플리케이션에 새 네임스페이스만 등록하면 됩니다. 또는 모듈 구성 파일에 다음 설정 매개변수를 추가합니다.

'AUTOLOAD_NAMESPACE' => array(
  'Lib'   => APP_PATH.'Lib',
)

공개 Lib 확장을 배치하기 위해 애플리케이션 디렉토리 아래에 Lib 디렉토리를 만들었습니다. 위의 두 클래스 라이브러리를 LibSina 디렉토리 아래에 넣으려면 다음 작업만 수행하면 됩니다. 조정 대상:

LibSinaApp 클래스(Lib/Sina/App.class.php에 위치)

namespace Lib\Sina;
class App {
}

LibSinaRank 클래스(Lib/Sina/Rank.class.php에 위치)

namespace Lib\Sina;
class Rank {
}

클래스 라이브러리가 네임스페이스를 사용하지 않는 경우, 가져오기 방법을 사용하여 먼저 클래스 라이브러리 파일을 로드한 다음 인스턴스화해야 합니다. 예: Counter 클래스(Com/Sina/Util/Counter.class.php에 위치)를 정의했습니다.

class Counter {
}

사용 시 , 다음 메서드 호출을 따라야 합니다.

import('Com.Sina.Util.Couter');
$object = new \Counter();

애플리케이션 클래스 라이브러리

애플리케이션 클래스 라이브러리는 일반적으로 애플리케이션 또는 모듈 디렉터리 아래의 클래스 라이브러리입니다. 애플리케이션 클래스 라이브러리의 네임스페이스는 일반적으로 루트인 모듈의 이름입니다. 네임스페이스, 예: HomeModelUserModel 클래스(ApplicationHomeModel에 위치)

namespace HomeModel;

use ThinkModel;

class UserModel은 Model을 확장합니다{

}

CommonUtilPay 클래스(ApplicationCommonUtil에 위치)

namespace Common\Util;
class Pay {
}

AdminApiUserApi 클래스(ApplicationAdminApi에 위치) )

namespace Admin\Api;
use Think\Model;
class UserApi extends Model{
}

원칙 하나만 기억하세요. 네임스페이스 경로와 실제 파일 경로가 일치하면 직접 인스턴스화하면 자동 로딩이 가능합니다.

추천 튜토리얼: "PHP 비디오 튜토리얼"

위 내용은 Thinkphp 프레임워크 확장 등 라이브러리 확장 작업 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제