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는 검색된 모델을 뷰로 보내고, 그러면 프레젠테이션이 생성되고 응답으로 클라이언트에 전송됩니다.
경우에 따라 컨트롤러가 발표자에게 컨트롤을 전달할 수 있습니다. 이 경우 발표자는 모델에서 정보를 수집하여 클라이언트에게 보냅니다. 여기서 발표자는 데이터베이스에서 모델을 검색하는 것을 제외하고는 비즈니스 로직을 수행하지 않습니다.