ThinkPHP6 매뉴얼에서 빈 컨트롤러는 아주 작은 공간만을 차지합니다. 그래서 빈 컨트롤러란 무엇이며, 이 단어조차 많은 프로그래머들이 듣거나 사용하지 않을 수 있으므로 이번에는 빈 컨트롤러에 대해 이야기해 보겠습니다. 실제적인 예를 들어 ThinkPHP6를 소개합니다.
ThinkPHP6 공식 매뉴얼에서 "빈 컨트롤러" 키워드를 검색하면 빈 컨트롤러의 장 내용을 찾을 수 있습니다. 먼저 빈 컨트롤러의 공식 정의를 살펴보겠습니다.
빈 컨트롤러의 개념은 시스템이 지정된 컨트롤러 이름을 찾을 수 없을 때 시스템이 현재 컨트롤러 아래에서 빈 컨트롤러(오류) 클래스를 찾으려고 시도한다는 것을 의미합니다. application 에서 이 메커니즘을 사용하면 오류 페이지를 사용자 정의하고 URL을 최적화하는 데 사용할 수 있습니다.
즉, 빈 컨트롤러를 사용하여 오류 페이지를 맞춤설정할 수 있습니다.
매뉴얼에서는 단일 애플리케이션을 예로 사용하지만 실제로 대부분의 프로젝트에는 여러 애플리케이션이 있으므로 다음에는 여러 애플리케이션을 예로 사용합니다.
우리의 프로젝트 도메인 이름이 www.xiangmu.com이라고 가정합니다. 두 개의 애플리케이션(index와 데모)이 있습니다. 각 애플리케이션에는 자체 인덱스 컨트롤러와 인덱스 방법이 있습니다.
1. 길을 찾을 수 없습니다.
브라우저에 www.xiangmu.com/index/index/a만 입력하면 이 주소는 인덱스 애플리케이션 아래 인덱스 컨트롤러의 a 메소드에 액세스하지만 거부할 수 있는 경우에는 a 메소드가 존재하지 않습니다. 이 잘못된 요청은 어떻게 되나요? 그러면 이 섹션의 빈 컨트롤러가 나타납니다.
인덱스 컨트롤에 다음 메소드를 추가합니다.
public function __call($method, $args){ return 'error request!'; }
인덱스 컨트롤에서 찾을 수 없는 메소드에 액세스하는 한 __call로 이동합니다. 이제 존재하지 않는 페이지에 대해 __call()에 도달했으므로 404.html을 만들고 call()을 사용하여 템플릿을 렌더링할 수 있습니다.
2. 컨트롤러를 찾을 수 없습니다.
위 방법으로 컨트롤러를 찾을 수 없다면 어떻게 해야 하나요? 브라우저 www.xiangmu.com/index/a/a에 무작위로 컨트롤러를 입력했습니다. 실제로 컨트롤러나 메서드가 없습니다. 이 잘못된 요청을 거부할 수 있다면 어떨까요?
그런 다음 아래 Error.php 컨트롤러를 사용하여 문제를 해결하세요. 현재 액세스가 인덱스 애플리케이션이므로 Error.php를 인덱스 애플리케이션 아래에 넣습니다. 같은 방식으로 404와 같은 오류 페이지를 설정할 수도 있습니다.
<?php namespace app\index\controller; use app\BaseController; class Error extends BaseController { public function __call($method, $args){ return 'error request!'; } }
위 내용은 빈 컨트롤러에 대한 관련 설명입니다. 지금 바로 사용해보세요!
위 내용은 ThinkPHP6의 빈 컨트롤러에 대해 이야기해 봅시다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!