Controller 와 View 웹페이지를 구성하는 Controller 와 View의 개념을 안내합니다.
zigger는 Controller 와 View가 결합하여 하나의 웹페이지를 구성합니다.
Controller는 웹페이지 출력을 위한 Database, Submit, Form 등의 각종 Back-End 처리를 담당하며,
View는 Controller에서 처리한 결과물을 넘겨 받아 웹페이지에 결과물을 출력합니다.
일반적으로 Controller의 소스코드는 아래와 같은 패턴으로 구성되어 있습니다.
예시 코드의 경우 zigger 사전정의 Method와 POST Request를 처리하기 위한 관련 Method를 지정합니다.
7~12 line은 웹페이지를 구성할 레이아웃을 정의 후 연동할 View를 지정합니다.
예시 코드의 경우 type2 유형의 header와 기본 type의 footer로 웹페이지를 구성한 뒤 /html/sign/signin.tpl.php View를 Controller와 연동합니다.
만약, Header 와 Footer 없이 CSS, JS등의 기본 구성만을 포함한 빈 웹페이지로 설정 하려는 경우 아래와 같이
common()으로 대체합니다.
func() 내에 Function을 미리 정의해 두고 필요할 때 마다 호출하여 사용합니다.
만약, 정의할 Function이 없다면, func() 는 삭제해도 무방합니다.
19~32 line은 Database, Method 등의 Method를 통해 각종 Back-End 처리를 수행합니다.
make() 내부 처리를 통해 View에서 전달받아 사용할 수 있는 변수를 생성합니다.
Controller를 통해 변수 생성이 완료 되었다면, 29~31 line과 같이 $this->set()을 통해 View에게 변수를 전달합니다.
View에게 변수가 전달 되었다면, 아래 'View' 섹션을 참고하여 웹페이지에 출력합니다.
아래 예시 코드는 /sign/signin Controller를 통해 넘겨 받은 $redirect 변수를 웹페이지에 출력하는 예시입니다.
Controller가 전달한 $redirect 변수를 웹페이지의 원하는 위치에 예시와 같이 출력하여 사용합니다.
Controller는 웹페이지 출력을 위한 Database, Submit, Form 등의 각종 Back-End 처리를 담당하며,
View는 Controller에서 처리한 결과물을 넘겨 받아 웹페이지에 결과물을 출력합니다.
Controller
Controller 파일은 zigger 설치 경로의 app/ 디렉토리내에 *.php 와 유사한 파일명으로 위치하고 있습니다.일반적으로 Controller의 소스코드는 아래와 같은 패턴으로 구성되어 있습니다.
Controller
/app/sign.php
위 소스코드 중 2~3 line은 Controller에서 사용할 Method를 지정합니다.<?php use Corelib\Func; use Corelib\Method; class Signin extends \Controller\Make_Controller { public function init() { $this->layout()->head('type2'); $this->layout()->view(PH_THEME_PATH.'/html/sign/signin.tpl.php'); $this->layout()->foot(); } public function func() { } public function make() { $req = Method::request('get', 'redirect'); if (IS_MEMBER) { Func::err_location(SET_ALRAUTH_MSG, PH_DOMAIN); } ... $this->set('redirect', $req['redirect']); $this->set('id_val', $id_val); $this->set('save_checked', $save_checked); } }
예시 코드의 경우 zigger 사전정의 Method와 POST Request를 처리하기 위한 관련 Method를 지정합니다.
use Corelib\Func; use Corelib\Method;
예시 코드의 경우 type2 유형의 header와 기본 type의 footer로 웹페이지를 구성한 뒤 /html/sign/signin.tpl.php View를 Controller와 연동합니다.
public function init() { $this->layout()->head('type2'); $this->layout()->view(PH_THEME_PATH.'/html/sign/signin.tpl.php'); $this->layout()->foot(); }
common()으로 대체합니다.
public function init() { $this->common()->head(); $this->layout()->view(PH_THEME_PATH.'/html/sign/signin.tpl.php'); $this->common()->foot(); }
확인해 주세요
한개의 Controller 파일에 다수의 인스턴스를 생성하여 개별적인 웹페이지로 구성할 수 있습니다.
확인해 주세요
14~17 line은 Controller에서 사용할 Function을 정의하는데 활용합니다. Controller 파일은 sign.php 와 같이 *.php 파일명으로 구성됩니다.
func() 내에 Function을 미리 정의해 두고 필요할 때 마다 호출하여 사용합니다.
만약, 정의할 Function이 없다면, func() 는 삭제해도 무방합니다.
public function func() { ... }
make() 내부 처리를 통해 View에서 전달받아 사용할 수 있는 변수를 생성합니다.
Controller를 통해 변수 생성이 완료 되었다면, 29~31 line과 같이 $this->set()을 통해 View에게 변수를 전달합니다.
$this->set('redirect', $req['redirect']); $this->set('id_val', $id_val); $this->set('save_checked', $save_checked);
View
Controller를 통해 전달 받은 변수를 View에서 활용하는 방법을 안내합니다.아래 예시 코드는 /sign/signin Controller를 통해 넘겨 받은 $redirect 변수를 웹페이지에 출력하는 예시입니다.
<div id="signin"> <form <?php echo $this->form(); ?>> <input type="hidden" name="redirect" value="<?php echo $redirect; ?>" /> <h4><?php echo $this->layout->logo_title(); ?>에 로그인하세요.</h4> <span class="log-noti"> 아직 회원이 아니신가요? <a href="<?php echo PH_DIR; ?>/sign/signup">지금 바로 회원으로 가입</a> </span> ... </form> </div>
확인해 주세요
View 파일은 signin.tpl.php 와 같이 *.tpl.php 파일명으로 구성됩니다.