>  기사  >  PHP 프레임워크  >  thinkphp5의 MVC 레이어링이란 무엇입니까?

thinkphp5의 MVC 레이어링이란 무엇입니까?

WBOY
WBOY원래의
2022-03-07 10:31:595639검색

thinkphp5에서 MVC 레이어링은 모델 레이어, 뷰 레이어, 컨트롤러 레이어 간의 작업 분담과 협력을 의미합니다. 모델 레이어는 데이터베이스 작업을 담당하고 컨트롤러는 별도의 작업을 수행합니다. URL에 따라 작동하는 모듈 클래스, 뷰는 액션 컨트롤러와 템플릿 파일을 연결하는 데 사용됩니다.

thinkphp5의 MVC 레이어링이란 무엇입니까?

이 문서의 운영 환경: Windows 10 시스템, ThinkPHP 버전 5, Dell G3 컴퓨터.

php5

MVC, M 모델, V 뷰, C 컨트롤러에서 MVC 레이어링이 무엇인지 생각해 보세요.

레이어링은 노동 분업과 협력을 의미하며 로직 레이어와 프리젠테이션 레이어가 별도로 작동합니다. 모델은 다음을 담당합니다. 데이터베이스 작업. 컨트롤러: 모든 WEB 작업은 모듈의 작업입니다. 컨트롤러는 URL에 따라 예약하고 작동하는 모듈 클래스입니다. View(뷰 클래스와 템플릿 파일로 구성): 액션 컨트롤러와 템플릿 파일을 연결합니다. 액션 클래스는 View 클래스를 통해 데이터를 템플릿 파일에 전달하고, 템플릿 파일은 수신된 데이터를 해당 데이터 형식으로 변환하여 표시합니다. .

ThinkPHP는 MVC(Model-View-Controller, Model-View-Controller) 패턴을 기반으로 하며 멀티 레이어(Multi-Layer) 디자인을 지원합니다.

모델 레이어

기본 모델 레이어는 모델 클래스로 구성되어 있습니다. 그러나 프로젝트가 성장하고 비즈니스 시스템이 복잡해짐에 따라 단일 모델 레이어로는 ​​의 요구 사항을 충족하기가 어렵습니다. 다중 레이어 모델을 지원하는 것은 매우 간단합니다. 다양한 모델 레이어는 여전히 시스템의 Model 클래스에서 상속되지만 디렉터리 구조와 명명 규칙에서 구별됩니다.

예를 들어 특정 프로젝트 설계에서는 데이터 계층, 논리 계층, 서비스 계층과 같은 다양한 모델 계층을 구분해야 하며, 모듈 디렉터리 아래에 모델, 논리 및 서비스 디렉터리를 생성하고 모든 모델을 나눌 수 있습니다. :

데이터 레이어: 모델/사용자는 데이터 관련 자동 검증, 자동 완성 및 데이터 액세스 인터페이스를 정의하는 데 사용됩니다.

로직 레이어: 로직/사용자는 사용자 관련 비즈니스를 정의하는 데 사용됩니다. logic

Service 레이어: service/User 사용자 관련 서비스 인터페이스 등을 정의합니다. 이 세 가지 모델 작업 클래스는 모두 thinkModel 클래스를 상속받을 수 있습니다.

모델 레이어의 계층적 분할은 매우 유연합니다. 개발자는 프로젝트의 필요에 따라 모델 계층을 자유롭게 정의하고 추가할 수도 있습니다.

뷰 레이어

뷰 레이어는 템플릿과 템플릿 엔진으로 구성됩니다. 템플릿 엔진의 디자인은 나중에 설명하겠습니다. 다른 타사 템플릿 엔진도 드라이버를 통해 지원됩니다. 다층 보기는 디렉토리로 간단하게 구분할 수 있습니다. 예:

view/default/user/add.html
view/blue/user/add.html

다양한 보기 디렉토리를 사용하여 더 복잡한 다층 보기를 추가로 구현할 수 있습니다. 예:

일반 보기 레이어 디렉토리 보기

모바일 모바일 액세스 보기 레이어 디렉토리

컨트롤러 레이어

ThinkPHP의 컨트롤러 레이어는 코어 컨트롤러와 비즈니스 컨트롤러로 구성됩니다. 코어 컨트롤러는 시스템 내부의 App 클래스에 의해 완성되며 애플리케이션(모듈, 컨트롤러 및 작업 포함)을 담당합니다. HTTP 요청을 포함한 스케줄링 제어. 차단 및 전달, 로딩 구성 등 비즈니스 컨트롤러는 사용자 정의 컨트롤러 클래스로 완성됩니다. 다층 비즈니스 컨트롤러의 구현 원리는 비즈니스 컨트롤러 및 이벤트 컨트롤러와 같은 모델의 계층화와 유사합니다.

controller/User //用于用户的业务逻辑控制和调度
event/User //用于用户的事件响应操作

controllerUser는 외부 상호 작용 응답을 담당하고 http://serverName/User와 같은 URL 요청을 통해 응답합니다. /index, eventUser는 내부 이벤트 응답을 담당하며 내부에서만 호출 가능하므로 외부와 격리되어 있습니다. 멀티 레이어 컨트롤러의 분할은 필수가 아니며 애플리케이션의 필요에 따라 자유롭게 레이어링할 수 있습니다. 컨트롤러 계층에서는 필요에 따라 계층화된 모델을 호출하거나 다른 계층화된 뷰를 호출할 수 있습니다.

추천 학습: "

PHP 비디오 튜토리얼

"

위 내용은 thinkphp5의 MVC 레이어링이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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