CodeIgniter

Controller

CodeIgniter를 CI라고 부르겠다.

예제에서는 ooo2.org을 사용할 것인데, 이것은 실습을 위해서 임시로 만든 것이다. 접속하지 말자.

기본 사용법

만약 아래와 같은 페이지로 접근했을 때 페이지를 출력하기 위한 방법에 대해서 알아보자. 

  • http://ooo2.org/index.php/topic : '토픽 메인 페이지' 출력
  • http://ooo2.org/index.php/topic/get/1 : '토픽 1' 출력

Controller 생성

Controller가 무엇인지는 지금은 몰라도 된다. MVC 수업을 통해서 자세히 알게 되기 때문에 그대로 따라하자. 지금 주목할 것은 콘트롤러의 이름에 의해서 URL이 결정된다는 점이고, 콘트롤러를 통해서 웹페이지를 화면에 출력 할 수 있다는 점이다. (CI에서 URL 규칙 참고)

 

http://ooo2.org/index.php/topic

파일 내용은 아래와 같다. 만약 index.php 뒤에 topic이라는 경로를 사용하고 싶다면 controllers 디렉토리 밑에 topic.php라는 이름의 파일을 생성해야 한다. 그리고 이 파일은 CI_Controller이라는 클래스를 상속한 Topic라는 이름을 가지고 있어야 한다. 그리고 index라는 이름의 메소드를 구현하면 CI는 이 메소드를 호출한다. 이것은 약속이다. 

 

http://ooo2.org/index.php/topic/get

만약 topic 뒤에 get이라는 경로를 추가하고 싶다면 get이라는 이름의 메소드를 구현해야 한다. 

 

http://ooo2.org/index.php/topic/get/1

get 뒤에 1이라는 숫자에 따라 다른 페이지를 보여주고 싶다면 메소드 get이 인자를 받으면 된다. 

예제

{CodeIgniter 설치 디렉토리}/application/controllers/topic.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Topic extends CI_Controller {
	function index(){
		echo '
		<!DOCTYPE html>
		<html>
			<head>
				<meta charset="utf-8"/>
			</head>
			<body>
				토픽 메인 페이지
			</body>
		</html>
		';
	}
	function get($id){
		echo '
		<!DOCTYPE html>
		<html>
			<head>
				<meta charset="utf-8"/>
			</head>
			<body>
				토픽 '.$id.'
			</body>
		</html>
		';
	}
}
?>

URL의 중간에 index.php가 포함되어 있는 것이 거슬릴 것이다. 이것은 다소 고급 주제이기 때문에 여기서는 다루지 않는다. 이것을 처리하는 방법은 CI 한국 사용자 포럼의 글을 참고하자. (바로가기)

Tag

태그명 : Controller

태그 주소 : https://github.com/egoing/codeigniter_codeingeverbody/tree/Controller

참고

댓글

댓글 본문