Controller 소개
고도몰의 Controller 를 소개하는 내용입니다.
Controller
는 Framework의 구동을 제외한
솔루션의 기본 공통 작업부터 화면 출력까지의 업무를 담당합니다.
📌 Controller 실행 순서
view (템플릿 엔진)
설정Setup()
해당 화면에서 사용될 interceptor 설정 (인증, 레이아웃 설정, 공통변수 설정 등)
사용자 정의 데이터 설정 (추후 지원)
pre()
실행 (사용자 정의 전처리)interceptor 실행 (시스템 전처리)
설정된
interceptor
의preHandle
메소드 실행환경설정에 등록된 순서에 따라서 순차적으로
interceptor
실행
index()
해당 Controller에서 실행되는 구문 (사용자 정의 가능 영역)
interceptor 실행 (시스템 후처리)
설정된
interceptor
의postHandle
메소드 실행실행 순서는
interceptor
등록 역순
post()
실행 (사용자 정의 후처리)fetch()
구성된 view를 html로 수신
render()
header
를 설정한 후 수신된 html 데이터를 화면에 출력
📌 Controller 상속 구조
AbstractController
는 추상화를 목적으로index()
,setup()
,pre()
,post()
의 추상 메서드가 설정되어 있으며 최종적으로 화면 출력을 담당합니다.ActionController
는 컨트롤러가 할 수 있는action
에 대해 정의되어 있습니다.Controller
는 위젯, 플러스샵, 헤더설정 및Controller
에서 사용하는 절대상수를 정의합니다.Widget
은 넓게 보면 컨트롤러 개념이지만 현 컨트롤러에 종속되어 부분적으로 프로그램+템플릿을 표현할 수 있습니다.
📌 Controller Implement
사용자(PC) 영역
사용자(Mobile) 영역
관리자 영역
위젯 영역
API 영역
📌 Controller Extends
User Source Directory
module/Controller/Front/Test/MyController.php
result
API
module/Controller/api/Test/MyController.php
📌 Data Handling
Controller
의 index()
실행 후 interceptor
후처리를 통해 DataHandler interceptor
가 실행 되면서 uri에 대응하는 위치에 있는 파일이 실행됩니다. 파일 안에서는 $data
변수를 통해 data
를 가공할 수 있습니다.
ex) 사용자 소스 디렉토리(User Source Directory)
내 goods/goods_list.php
에 파일을 생성하고 다음과 같이 작성합니다.
Bundle/Controller/Front/Goods/GoodsListController.php
goods/goods_list.php
result [ 'data' => 'not original', 'data2' => 'new data' ]
📌 View Rendering
View 출력 예제
JSON 출력 예제
파일 다운로드 예제
스트림 파일 다운로드 예제
리다이렉트 예제
Last updated