Controller 와 View 웹페이지를 구성하는 Controller 와 View의 개념을 안내합니다.

zigger는 Controller 와 View가 결합하여 하나의 웹페이지를 구성합니다.
Controller는 웹페이지 출력을 위한 Database, Submit, Form 등의 각종 Back-End 처리를 담당하며,
View는 Controller에서 처리한 결과물을 넘겨 받아 웹페이지에 결과물을 출력합니다.

Controller

Controller 파일은 zigger 설치 경로의 app/ 디렉토리내에 *.php 와 유사한 파일명으로 위치하고 있습니다.
일반적으로 Controller의 소스코드는 아래와 같은 패턴으로 구성되어 있습니다.
Controller /app/sign.php
<?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);
    }
}
위 소스코드 중 2~3 line은 Controller에서 사용할 Method를 지정합니다.
예시 코드의 경우 zigger 사전정의 Method와 POST Request를 처리하기 위한 관련 Method를 지정합니다.
use Corelib\Func;
use Corelib\Method;
7~12 line은 웹페이지를 구성할 레이아웃을 정의 후 연동할 View를 지정합니다.
예시 코드의 경우 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();
}
만약, Header 와 Footer 없이 CSS, JS등의 기본 구성만을 포함한 빈 웹페이지로 설정 하려는 경우 아래와 같이
common()으로 대체합니다.
public function init()
{
    $this->common()->head();
    $this->layout()->view(PH_THEME_PATH.'/html/sign/signin.tpl.php');
    $this->common()->foot();
}
확인해 주세요

한개의 Controller 파일에 다수의 인스턴스를 생성하여 개별적인 웹페이지로 구성할 수 있습니다.

확인해 주세요

Controller 파일은 sign.php 와 같이 *.php 파일명으로 구성됩니다.

14~17 line은 Controller에서 사용할 Function을 정의하는데 활용합니다.
func() 내에 Function을 미리 정의해 두고 필요할 때 마다 호출하여 사용합니다.
만약, 정의할 Function이 없다면, func() 는 삭제해도 무방합니다.
public function func() { ... }
19~32 line은 Database, Method 등의 Method를 통해 각종 Back-End 처리를 수행합니다.
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에게 변수가 전달 되었다면, 아래 'View' 섹션을 참고하여 웹페이지에 출력합니다.

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>
Controller가 전달한 $redirect 변수를 웹페이지의 원하는 위치에 예시와 같이 출력하여 사용합니다.
확인해 주세요

View 파일은 signin.tpl.php 와 같이 *.tpl.php 파일명으로 구성됩니다.