FuelPHP-아키텍처 개요

FuelPHP는 전투 테스트를 기반으로합니다 Model-View-Controller 건축과 함께 HMVC (Hierarchical MVC)지원하다. MVC는 유연하고 계층화 된 애플리케이션 개발을 제공하지만 HMVC는 웹 애플리케이션의 위젯 화를 가능하게하기 위해 한 단계 더 나아갑니다.

FuelPHP의 강점은 응용 프로그램을 개발하는 특정 방법을 강요하지 않는다는 것입니다. 간단하고 사용하기 쉬운 표준 구조를 제공합니다. 개발자는 FuelPHP에서 제공하는 미리 정의 된 기능 세트를 자유롭게 사용하거나 필요할 때마다 수정할 수 있습니다. 핵심 기능을 포함하여 FuelPHP에서 제공하는 모든 기능은 응용 프로그램의 요구 사항에 따라 변경 될 수 있습니다.

모델

모델은 애플리케이션의 비즈니스 항목입니다. Controller와 View는 Model 형태로 데이터를 교환합니다. 모델을 통해 비즈니스 데이터를 균일하게 표현할 수 있습니다. 이를 통해 데이터베이스 계층은 표준 방식으로 웹 애플리케이션 계층과 상호 작용할 수 있으며 데이터베이스 엔터티를 선택, 저장, 편집 및 삭제할 수있는 옵션을 제공합니다.

제어 장치

일반적인 MVC 응용 프로그램은 컨트롤러에서 시작됩니다. 사용자가 FuelPHP 웹 애플리케이션에 요청을 보내면 애플리케이션은 요청에 대한 모든 정보를 수집하여 컨트롤러에 보냅니다. Controller는 요청 된 페이지의 필수 비즈니스 로직을 수행 한 다음 Model의 형태로 처리 된 데이터와 함께 관련 View를 호출합니다.

전망

보기는 MVC 응용 프로그램의 프레젠테이션 계층입니다. 보기는 모델을 사용자에게 표시하는 방법을 결정합니다. 고급 레이아웃에 대한 간단한 데이터 렌더링을 지원하므로 웹 사이트가 모든 페이지에서 디자인을 표준화 할 수 있습니다. View는 응용 프로그램 전체에서 빠른 디자인 변경을 가능하게하는 테마 지원도 제공합니다.

증여자

Presenter는 FuelPHP에서 제공하는 특수 기능입니다. 컨트롤러와 뷰 사이의 접착제입니다. Controller는 데이터베이스에서 모델 검색,보기에 대한 데이터 생성 등과 같은 낮은 수준의 책임을 공유 할 수 있습니다. Controller는 View 대신 Presenter를 호출하여 View를 호출합니다. Presenter는 비즈니스 로직과 프리젠 테이션 레이어를 완전히 분리 할 수 ​​있습니다.

계층 적 MVC

FuelPHP는 클라이언트 (브라우저)의 요청과 유사하게 다른 컨트롤러에서 하나의 컨트롤러를 호출하는 옵션을 제공합니다. 컨트롤러가 다른 컨트롤러를 호출하면 호출 된 컨트롤러는 응답을 클라이언트 (브라우저)에 렌더링하는 대신 호출하는 컨트롤러에 반환합니다. 이를 통해widgetization웹 애플리케이션의. 예를 들어 댓글 섹션은 기본 (블로그) 페이지의 하위 섹션뿐 아니라 독립형 페이지로 표시 될 수 있습니다.

기준 치수

FuelPHP의 두드러진 특징 중 하나는 웹 애플리케이션의 한 섹션을 모듈로 변환 할 수 있다는 것입니다. 이는 다른 애플리케이션간에 공유 할 수 있습니다. 예를 들어, 애플리케이션 용으로 만든 블로그 모듈은 소스 애플리케이션에서 대상 애플리케이션으로 모듈 코드를 복사하기 만하면 다른 애플리케이션에서 재사용 할 수 있습니다.

새 모듈을 만드는 것은 메인 애플리케이션을 개발하는 것만 큼 간단합니다. 구조는 모듈이 별도의 폴더를 코딩해야한다는 유일한 예외를 제외하고는 메인 애플리케이션과 유사합니다.

꾸러미

FuelPHP는 코드를 패키지라는 단일 단위로 구성하는 옵션을 제공합니다. 패키지는 웹 애플리케이션에 필요한 하나 이상의 기능을 포함 할 수 있습니다. 예를 들어 ORM, 이메일 등과 같은 데이터베이스 구성 요소를 패키지로 구성하고 필요할 때마다 사용할 수 있습니다.

패키지는 웹 페이지 나 부분 웹 페이지를 포함하지 않는다는 점에서 모듈과 다릅니다. 패키지는 FuelPHP 및 다른 PHP 프레임 워크에서 사용할 수 있습니다.

워크 플로우

FuelPHP의 워크 플로우는 간단하고 이해하기 쉽습니다. 다음 다이어그램에 설명되어 있습니다.

  • 사용자가 애플리케이션에 요청을 보냅니다.

  • 컨트롤러는 요청을 수신하고 모델과 상호 작용하여 정보를 수집하며, 모델은 데이터베이스와 상호 작용합니다.

  • 컨트롤러는 다른 컨트롤러에 하위 요청을 보내 다른 컨트롤러와 상호 작용하여 정보를 수집합니다.

  • Controller는 검색된 모델을 뷰로 보내고, 그러면 프레젠테이션이 생성되고 응답으로 클라이언트에 전송됩니다.

  • 경우에 따라 컨트롤러가 발표자에게 컨트롤을 전달할 수 있습니다. 이 경우 발표자는 모델에서 정보를 수집하여 클라이언트에게 보냅니다. 여기서 발표자는 데이터베이스에서 모델을 검색하는 것을 제외하고는 비즈니스 로직을 수행하지 않습니다.