thinkphp3에는 Facade 클래스가 있습니다. Facade는 더 나은 테스트 가능성과 확장성을 갖춘 컨테이너의 클래스에 대한 정적 호출 인터페이스를 제공합니다. 구문은 "class Test{public function Class(){return path;}}입니다. ".
이 기사의 운영 환경: Windows 10 시스템, ThinkPHP3 버전, Dell G3 컴퓨터.
파사드는 컨테이너의 클래스에 대한 정적 호출 인터페이스를 제공합니다. 기존 정적 메서드 호출과 비교하여 정적 클래스 라이브러리가 아닌 경우에도 이를 호출할 수 있습니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!