> 백엔드 개발 > PHP 튜토리얼 > Thinkphp 2 소개 (46)

Thinkphp 2 소개 (46)

WBOY
풀어 주다: 2016-08-08 09:22:57
원래의
1087명이 탐색했습니다.

[연산 처리 없음]

다음 그림을 보세요:

실제 상황: 우리의 사용자 컨트롤러에는 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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿