View
뷰란 화면상에 출력되는 내용을 의미한다. CodeIgniter를 이용해서 화면에 내용을 출력하기 위해서는 Controller에서 echo를 하는 것도 방법이지만, View 안에서 UI와 관련된 코드를 작성하는 것이 바람직하다.
View의 생성
view는 쉽게 말해서 html/css/javascript와 같은 코드를 관리하는 방법이다. application 디렉토리 하위에 views 라는 디렉토리 아래에 php 파일을 생성하고 여기에 웹페이지를 저장한다.
앞선 수업에서는 html 코드를 출력하기 위해서 application/controllers/topic.php 파일에 만든 메소드에서 echo 를 호출하고 있었다. 하지만 이것을 $this->load->view 라는 구문으로 대체했는데 view의 인자로 head, main, footer를 사용하고 있다. 이것은 head.php, main.php, footer.php 파일을 로드하겠다는 의미인데, 이 파일들은 application/views/ 디렉토리 아래에 위치하도록 약속 되어 있다.
또 (head.php, main.php 와 같은) view 파일 내부적으로 변수를 사용하고 있다면 $this->load->view('확장자를 제외한 파일이름', 데이터 배열)의 형식을 이용해서 데이터를 view로 전달 할 수 있다.
view를 사용하는 이유
controller에서 직접 echo를 하지 않고 view를 사용하는 이유는 자원들을 체계적으로 관리하기 위해서다. 딱 봐도 controllers/topic.php 파일이 단순하고 간결해졌다. 또 표현과 관련된 부분은 views 아래로 이동했기 때문에 html/css/javascript를 코딩해야 하는 디자이너나 퍼블리셔의 입장에서 자신의 업무에 집중 할 수 있고, 수정 과정에서 오류가 발생할 수 있는 확률을 낮출 수 있다.
View Source
application/views/head.php
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> </head> <body>
application/views/footer.php
</body> </html>
application/views/main.php
토픽 페이지
application/views/get.php
토픽 <?=$id?>
Controller Source
application/controllers/topic.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Topic extends CI_Controller { function index(){ $this->load->view('head'); $this->load->view('main'); $this->load->view('footer'); } function get($id){ $this->load->view('head'); $this->load->view('get', array('id'=>$id)); $this->load->view('footer'); } } ?>
Tag
태그명 : View
태그 주소 : https://github.com/egoing/codeigniter_codeingeverbody/tree/View