[연산 처리 없음]
다음 그림을 보세요:
실제 상황: 우리의 사용자 컨트롤러에는 hello() 메소드가 없습니다
객체가 이 클래스의 존재하지 않는 메서드에 액세스하면 "마법 메서드 __call()"에 액세스하게 됩니다.
사용자가 존재하지 않는 작업에 액세스합니다 -" 해결 방법: 각 컨트롤러
을 처리할 _empty() 메서드를 정의합니다. 두 번째 해결 방법: 빈 작업 정의
【 빈 모듈 처리】
클래스를 사용하지만 이 클래스는 아직 포함되지 않았습니다.
자동 로딩 메커니즘을 통해 __autoload()를 처리할 수 있습니다. 자동 로딩 메커니즘이 이 클래스를 찾지 못하면 오류가 보고됩니다.
은 빈 모듈을 요청하는 것입니다.
해결 방법 1: 빈 컨트롤러 정의, 빈 모듈
해결 방법 2:
【응용 프로그램에 함수 라이브러리 파일 추가】
Common 폴더에 함수 라이브러리 파일을 넣는 곳입니다
【모듈 그룹화】
1. 컨트롤러가 그룹 설정을 수행합니다
2. 템플릿 보기 그룹화해야 함
3. 구성 변수를 그룹화해야 함
4. config.php 구성
[전작업, 후작업]
언제 컨트롤러의 메서드가 호출되면 호출 전후에 몇 가지 추가 작업을 수행할 수 있습니다. 이를 사전 작업 및 사후 작업이라고 합니다.
이 URL을 요청할 때: http: //URL/index. php/Admin/Goods/zhanshi, 메소드가 존재한다면 이 작업은 App.class.php의 exec() 메소드에서
는 zhanshi()가 실행될 때 먼저 실행될 수 있으며 의 후속 작업은 zhanshi()가 실행된 후에 실행될 수 있으며 클래스에는 많은 메소드가 있습니다. 사전 및 사후 작업이 필요한 문제입니다. 이 문제를 어떻게 해결해야 합니까? 해결책: [교차 모듈 호출]존재하지 않는 클래스를 인스턴스화하면 __autoload() 메커니즘을 통해 자동으로 로드됩니다. . tp 프레임워크의 __autoload()는 어디에 있나요? Think.class.php에서 A() 메소드를 통해 컨트롤러 객체를 인스턴스화합니다 A('Module Controller') 예: A('Goods') A('그룹/컨트롤러') 예: A('home/Ucenter'); A('project://group/controller') 예: A('shop://home/ Ucenter'); A() 메서드에는 import() 메서드에 대한 중첩된 호출이 있습니다. 이 메서드는 해당 컨트롤러를 가져오고 이를 도입하도록 요구합니다. 그런데 A() 메서드는 객체를 직접 새로 인스턴스화합니다 R("project://group/controller/Operation") 메서드 는 컨트롤러를 도입하고 객체를 인스턴스화하는 것입니다. 및 메서드 호출은 모두 상속됩니다. R('모듈 컨트롤러/작업') 예: A('상품') R('그룹/컨트롤러/작업') 예: A('home/Ucenter/ member'); R('project://group/controller/Operation') 예: A('shop://home/Ucenter/members');R( ) 메서드는 A() 메서드를 호출합니다 A() 메서드는 import() 메서드를 호출합니다 A() 메서드는R() 메소드는
을 사용합니다. 위 내용은 Thinkphp 시작하기 2부(46)를 관련 내용을 포함하여 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.