헬퍼


뷰는 클래스 객체로 되어 있습니다. 뷰의 클래스를 직접 처리하는 것보다 헬퍼함수를 이용하면 편리합니다.

헬퍼함수


헬퍼함수는 프레임워크 내에서 장소에 구분없이 호출하여 사용을 할 수 있는 장점이 있습니다. 또한 클래스의 인스턴스를 가지고 있지 않은 상태에서도 호출을 할 수 있는 장점이 있습니다.

view(파일명, 데이터);

view() 헬퍼함수는 두개의 인자값을 가지고 있습니다. 첫번째는 파일명, 두번째는 데이터 입니다.

파일명


첫번째 인값인 파일명은 뷰의 기본 리소스 파일입니다. 지정된 경로에서 파일을 읽어서 랜더링을 처리합니다.

데이터


뷰로 전달되는 데이터 입니다. 이 데이터는 다중 배열형태의 키값으로 구성이 되어 있습니다. 뷰는 전될되는 데이터를 기반으로 뷰 컨덴츠와 동적으로 결합을 하게 됩니다.

만일 모델의 데이터 값이 있는 경우, 먼저 처리하여 같이 뷰로 전달을 해야 합니다.

뷰호출


컨트롤러는 작업한 데이터를 뷰로 전달하여 화면에 출력할 수 있습니다.

$viewFile = "home";
$viewData = [];
return $this->view($viewFile, $viewData);

view()는 컨트롤러에서 제공되는 뷰 호출 매서드 입니다. view()는 두개의 인자값을 전달 받습니다.

첫번째 인자는 뷰파일의 이름 입니다. 뷰 파일 이름은 문자열로 되어 있습니다. 만일 서브구조로 되어 있다면 디렉토리 구분자를 이용하여 같이 사용할 수 있습니다.

$viewFile = "home";
$viewFile = "home/test";

뷰 파일은 환경설정에서 설정한 리소스 폴더 안에 있습니다. 뷰 파일의 확장자는 .htm 파일 입니다. 만일 확장자를 변경하고자 하는 경우에는 환경설정 값을 변경해 주셔야 합니다.

두번재는 뷰로 전달되는 데이터 입니다. 뷰데이터는 배열되 되어 있습니다.

데이터 전달


뷰에서 필요한 데이터는 연상배열로 작성하여 전달합니다. 만일 사이트에 메뉴와 설정파일등의 값을 같이 전달하고자 한다면, 미리 사전에 데이터 배열을 생성하여 전달 하여야 합니다.

// 메뉴 데이터를 읽어옵니다.
$viewData['menus'] = menu();
if ($viewFile) {

    if ($screen = view($viewFile, $viewData)) {
        return $screen;
    } else {
        return $this->error_404("404 페이지가 없습니다. from pages!");
    }
} else {
    return $this->error_404("viewFile 값이 없습니다.<br>");
}

위의 예제는 기본 pageController에서 데이터를 전달하는 부분을 캡쳐한 것입니다.

뷰의 반환값


뷰의 호출을 실행시 지정된 리소스를 찾지 못하여 처리가 실패하는 경우에는 null을 반환합니다. 즉 null은 페이지의 데이터가 없다는 의미로 별도의 처리루틴이 필요합니다.