평범한 이야기들

[PHP] Codeigniter (코드이그나이터) Controller 본문

평범한 개발 이야기/PHP

[PHP] Codeigniter (코드이그나이터) Controller

songsariya 2014. 12. 5. 12:15
728x90

Codeigniter 즉 CI 는 MVC 디자인패턴을 가지고 있습니다.


MVC 디자인 패턴은 


M : Model

V : View

C : Controller



이렇게 각 단어의 앞글자를 따서 이름을 부르고 있습니다.

각각의 역활은 차 후 포스팅에서 설명해드리도록 하겠습니다.


먼저 오늘은 CIController를 정리할려고 합니다.


지금 당장은 Controller가 무엇을 하는지는 모르셔도 됩니다. 

추후 MVC 패턴을 공부할 때 더 자세히 알수 있을거 같습니다.

다만 지금 이 글에서는 Controller의 이름을 통해 사이트의 URL(주소)이 결정되는 모습을 보실 껍니다.

(즉 컨트롤러와 URL 주소의 맵핑이 되는 과정입니다.)

그리고 URL의 주소를 통해서 화면에 출력되는 내용을 볼 수 있습니다.



저는 CI를 제 서버에 Study란 폴더에 넣었습니다.


http://192.168.219.134/Study/index.php/test


위 처럼 index.php 뒤에 test란 경로를 사용하고 싶다면 

Controller 디렉토리 밑에 test.php 라는 파일을 생성해줍니다.





Controller의 기본 형식은 controller 디렉토리에 있는 welcome.php를 열어서 복사하면 됩니다.


여기서 주의할 점은 클래스 명은 대문자로 시작해야 한다는 것입니다.


위와 같이 저장하고  http://192.168.219.134/Study/index.php/test 로 접속을 하게 되면 


다음과 같이 나오게 됩니다.





http://192.168.219.134/Study/index.php/test/some


만약 test뒤에 some이라는 경로를 추가해주고 싶으면 some라는 메소드를 구현해주시면 됩니다.



http://192.168.219.134/Study/index.php/test/little/1


little뒤에 1이라는 숫자에 따라 다른 페이지를 보여주고 싶으면 메소드 some이 인자를 받으시면 됩니다.



http://192.168.219.134/Study/index.php/test/Param/1/2/3


param이라는 뒤에 인자를 더 추가 해주고 싶으시면 위와 같이 하시면 됩니다.




위 예제를 적용한 소스코드입니다.


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Test extends CI_Controller {


	public function index()
	{
		echo "Controller Test Page 입니다.";
	}

	public function Some()
	{
		echo "Test 안에 Some  입니다.";
	}

	public function Little($parameter)
	{
		echo "Test 안에 Little " . $parameter . " 입니다.";
	}

	public function Param($parameter1,$parameter2,$parameter3)
	{
		echo "Test 안에 Param " . $parameter1 . " , " . $parameter2 . " , " . $parameter3 . " ,  입니다.";
	}

}
?>


결과 화면입니다.






간단하게 CI의 Controller 가 어떻게 작동하는지 확인해보았습니다.


이 외에도 다양한 기능들이 존재 합니다. 


코드이그나이터 매뉴얼에서 Controller 를 검색해 확인해 보시기 바랍니다.


※참고자료


Opentutorial - 생활코딩 Controller 편 : http://opentutorials.org/module/327/3829

Codeigniter Manual : http://codeigniter-kr.org/user_guide_2.1.0/general/controllers.html


index.php를 제거하기 : http://www.codeigniter-kr.org/lecture/view/213/page/1


#제 블로그 보다 Opentutoril의 생활코딩에 올라온 자료가 더 좋습니다.

공부하면서 정리하는 내용입니다.




728x90
Comments