>  기사  >  PHP 프레임워크  >  thinkphp3에는 Facade 클래스가 있나요?

thinkphp3에는 Facade 클래스가 있나요?

WBOY
WBOY원래의
2022-04-07 16:45:392040검색

thinkphp3에는 Facade 클래스가 있습니다. Facade는 더 나은 테스트 가능성과 확장성을 갖춘 컨테이너의 클래스에 대한 정적 호출 인터페이스를 제공합니다. 구문은 "class Test{public function Class(){return path;}}입니다. ".

thinkphp3에는 Facade 클래스가 있나요?

이 기사의 운영 환경: Windows 10 시스템, ThinkPHP3 버전, Dell G3 컴퓨터.

thinkphp3에는 파사드 클래스가 있나요?

파사드는 컨테이너의 클래스에 대한 정적 호출 인터페이스를 제공합니다. 기존 정적 메서드 호출과 비교하여 정적 클래스 라이브러리가 아닌 경우에도 이를 호출할 수 있습니다. Facade 클래스를 정의합니다

facade를 사용하는 이유

1 정적 메서드와 비정적 메서드의 차이점(객체 호출과 참조 변수가 다름)

정적 메서드: 정적 키워드 Method로 수정됩니다. , 클래스 메서드라고도 합니다. 개체가 아닌 클래스에 속합니다. 개체를 인스턴스화하기 전에 클래스 이름과 메서드 이름을 통해 정적 메서드를 호출할 수 있습니다. (정적 속성과 정적 메서드는 클래스에 속하며 클래스 이름을 통해 직접 호출할 수 있습니다.)

A. 정적 메서드에서는 정적 메서드를 호출할 수 있습니다.

B. 정적 메서드에서는 비정적 메서드를 호출할 수 없습니다.

C. 정적 메서드에서는 클래스 변수(즉, 정적 수정 변수)를 참조할 수 있습니다.

D. 정적 메서드에서는 멤버 변수를 참조할 수 없습니다(즉, 정적 수정이 없는 변수).

E. 정적 메소드에서는 super 및 this 키워드를 사용할 수 없습니다.

비정적 메소드: 정적 키워드 수정이 포함되지 않은 일반적인 메소드로 인스턴스 메소드 및 멤버 메소드라고도 합니다. 클래스가 아닌 객체에 속합니다. (멤버 속성과 멤버 메소드는 객체에 속하며 new 키워드를 통해 생성한 후 객체를 통해 호출해야 합니다.)

A. 일반 메소드에서는 일반 메소드를 호출할 수 있습니다.

B. 일반 메서드에서는 정적 메서드를 호출할 수 있습니다.

C. 일반 메서드에서는 클래스 변수와 멤버 변수를 참조할 수 있습니다.

D. 일반 메서드에서는 super 및 this 키워드를 사용할 수 있습니다.

2. 정적 메서드와 비정적 메서드의 차이점(다른 호출 메서드)

정적 메서드는 클래스 이름 호출, 개체 호출로 직접 호출할 수 있습니다. (클래스명. 메소드명 / 객체명. 메소드명)

하지만 비정적 메소드는 객체를 통해서만 호출할 수 있습니다. (객체 이름. 메소드 이름)

3. 정적 메소드와 비정적 메소드의 차이점(수명주기가 다름)

정적 메소드의 수명주기는 해당 클래스와 동일합니다. 클래스가 정의되고 메모리에 로드됨에 따라 성장합니다. 정적 속성과 메서드는 스레드가 끝날 때까지 삭제되지 않습니다. (즉, 정적 메서드는 클래스에 속합니다.)

비정적 메서드의 수명 주기는 클래스의 인스턴스화된 개체만큼 길지만, 클래스가 개체를 인스턴스화할 때만 비정적 메서드가 생성되며, 객체가 소멸되고, 비정적 메서드도 즉시 소멸됩니다. (즉, 비정적 메서드는 개체에 속합니다.)

요약:

클래스 메서드는 클래스 이름을 통해 직접 호출할 수 있으며, 인스턴스 메서드는 먼저 클래스를 인스턴스화한 다음 개체를 초기화한 다음 클래스 메서드를 통해 호출해야 합니다. 클래스의 인스턴스 객체

사용 방법

1. Facade 클래스가 배치되어야 하는 폴더 Facade를 만듭니다.

2. 자신만의 Public 클래스를 작성합니다

3. Facade는 다음과 같습니다

use think/Facade;
class TestFacade extends Facade{
protected static function getFacadeClass(){
return '写好的目标公共类绝对路径';
}
}

4. 이 퍼블릭 클래스를 호출할 때 퍼블릭 클래스를 직접 대체하여 퍼블릭 클래스의 비정적 메소드도 정적으로 호출할 수 있습니다. "

PHP 영상. 튜토리얼

"

위 내용은 thinkphp3에는 Facade 클래스가 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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