Home » Blog » 컨트롤러 Controllers 설명

컨트롤러 Controllers 설명

http://sample.cikorea.net/mvc_sample/basic_sample

컨트롤러란 무엇인가?

간단하게 말하면 컨트롤러는 URL과 상호작용하는 클래스 파일이라고 할수 있습니다.

아래 URI를 보세요 :

example.com/index.php/blog/

위 예제에서 CodeIgniter 는 blog.php 라는 파일을 Controller 로서 찾은후 로드 합니다.

컨트롤러의 이름이 URI 의 첫번째 새그먼트와 동일하다면 해당 컨트롤러는 자동적으로 로드될것입니다.

따라해보세요:  Hello World!

실재로 작동되는걸 확인해보는것이 쵝오죠 ! blog.php 라는 파일을 만든후 다음의 코드를 입력하세요 .

그다음에 application/controllers/ 폴더에 저장하세요 .

자 이제 아래예 처럼 브라우저에서 접속보세요 .(example.com 부분은 여러분의 url 로 대체되어야합니다):

example.com/index.php/blog/

정상적으로 하셨다면 Hello World! 라는 텍스트가 화면에 표시되는걸 보실수 있을거예요.

Note: 클래스명은 반드시 대문자로 시작되어야합니다. 아래의 예제는 맞습니다.:

<?php
class Blog extends CI_Controller {

}
?>

그러나 아래의 예제는 틀렸습니다.

<?php
class blog extends CI_Controller {

}
?>

님하가 만드신 컨트롤러는 반드시 부모컨트롤러 로 부터 상속(extends)받아야합니다.그렇지않으면 컨트롤러의 기능을 사용할 수 없습니다.

함수 (Functions)

위 예제에서 함수이름은 index() 였습니다. “index” 함수는 URI 에서 두번째 새그먼트가 전달되지않을때 기본으로 실행됩니다. 아래와같은 방법으로도 위 예제와같이 “Hello World”를 화면에 뿌릴수 있습니다.

example.com/index.php/blog/index/

URI 의 두번째 새그먼트는 컨트롤러 내의 어떤함수가 실행될지를 결정합니다..

따라해보세요. 새로운 함수를 컨트롤러에 추가합니다.

아래 URL로 접속하여 comment 함수를 실행시켜봅시다:

example.com/index.php/blog/comments/

새로운 메세지가 보이시죠 ? 짝짝짝

URI Segments 를 함수에 전달하기

URI 가 2개보다 많은 세그먼트를 포함하고있다면 나머지들은 파라미터로 함수에 전달됩니다.

예를들어 다음의 URL 이라면:

example.com/index.php/products/shoes/sandals/123

함수는 새그먼트 3번과 4번(“sandals” 및 “123”)을 파라미터로 전달받게 됩니다.

<?php
class Products extends CI_Controller {

public function shoes($sandals, $id)
{
echo $sandals;
echo $id;
}
}
?>