처음부터 차근차근

Codelgniter 파일 구조와 Controller, Veiw 본문

Framework/CodeIgniter

Codelgniter 파일 구조와 Controller, Veiw

_soyoung 2021. 10. 6. 17:18
반응형
Codelgniter의 파일 구조

 

Codelgniter의 파일 구조는 아래와 같다.

Codelgniter 파일 구조

 

application을 열어보면 안에 model, view, controller 파일이 있다.

application

앞으로 model, view, controller 파일을 생성할 때는 밑줄 친 디렉토리에다 생성하면 된다. 

 

 

 

 

Codelgniter의 핵심적인 요소 : controller

 

Codelgniter은 MVC 모델을 사용하기 때문에 가장먼저 controller을 찾는다.

그래서 controller은 Codelgniter의 가장 기본적이고 핵심적인 요소이다.

그리고 controller를 실행시키기 전에 항상 index.php를 거친다.

따로 설정하지 않는한, 모든 Codelgniter url은 항상 index.php를 앞에 명시한다고 생각하면 된다.

 

localhost/index.php/컨트롤러명

codelgniter에서 컨트롤러를 실행시키는 url이다.

(정확히 말하면 컨트롤러의 index()메서드를 호출시키는 url이다. -> 이유는 <controller 파일을 만드는 방법> 4번)

 

<controller 파일을 만드는 방법>

1. application > controllers 밑에다가 php 파일을 새로 만든다.

 

2. class를 만든다. 여기서 주의할 점 : class명은 첫글자가 항상 대문자여야한다.

 

3. class에다가 CI_Controller 클래스를 상속받는다.

 

4. class에다 public으로 index()메서드를 정의한다.

이렇게 하면 'localhost/index.php/컨트롤러명' 이라고 쳤을 때 index()함수가 호출된다.

index() 함수를 만들지 않으면 컨트롤러 명만 쳤을 때 error(404 Page Not Found)가 난다.

 

이때 주의할 점 : controller class명은 반드시 파일명과 같아야 한다.

단, 대소문자는 따로 구분하지 않아도 된다.

 

** 컨트롤러 파일의 명명규칙 **

맨 앞글자를 영문 대문자로 한다.

 

 

 

 

controller - 함수 매개변수 넘기기

 

index() 메소드가 아닌 다른 함수를 새로 만들면 아래와 같이 호출하면 된다.

localhost/index.php/컨트롤러명/함수명

ex)

url

 

메서드의 매개변수를 넘기려면 아래와 같이 호출하면 된다.

localhost/index.php/컨트롤러명/함수명/매개변수

ex)

결과

 

이렇게 사용자가 요청한 url에 따라 controller의 메소드를 호출해주는 것을 URI Routing이라고 한다.

 

 

 

 

view

 

화면의 출력을 담당하는 부분이다.

보통 MVC패턴은 controller에서 view를 호출해서 출력하는 구조로 되어있다.

 

<controller에서 view파일 호출하는 법>

$this->load->view('view파일이름'); // 파일 이름에서 확장자는 생략!

함수 안에다 저 코드를 입력하고 함수를 url에 치면 괄호 안에 매개변수로 넘긴 view파일이 실행된다.

 

ex) 

controller
view
결과

 

 

 

 

view - 함수 매개변수 넘기기

 

view()함수에서 함수의 매개변수를 넘길려면 view()함수의 매개변수 뒤에다가 함수의 매개변수를 입력하면 된다.

view('view파일이름', 함수매개변수);

하지만 view()함수에서 매개변수를 넘기려면 반드시 array()로 넘겨야한다.

그래서 아래와 같이 써야한다.

$argument = array('view파일가서 사용할 이름'=>$함수매개변수);
$this->load->view('EchoName', $argument);

 

 

* 'view파일가서 사용할 이름'=>$함수매개변수 : 

php 배열 정의 방법 중 하나인 연계 배열(Associative arrays)이다.

연계 배열이란 값을 할당하는데 이름 키(key)를 사용하는 배열이다.

예제)

<?php
    $score = array("Ann"=>"70","Jecy"=>"88","Coco"=>"95");
    echo $score['Ann'];
?>

 

 

view 파일에서 넘겨온 매개변수를 사용하려면 아래처럼 사용해야 한다.

<?=$key이름?>
or
$key // <?php ?>안에 있을 때

원래 연계배열 원소를 호출할 때는 $배열명['key']를 사용하는게 맞는데 Codelgniter은 이렇게 안쓰고 그냥 key이름만쓴다. 

ex)

controller
view파일의 EchoName.php
결과

 

 

 

 

 

 

출처 : 'Codelgniter - 생활코딩' 변형 및 요약

반응형

'Framework > CodeIgniter' 카테고리의 다른 글

Helper  (0) 2021.10.13
URI 매핑 변경하기  (0) 2021.10.12
Bootstrap  (0) 2021.10.10
Model과 View, 데이터베이스 연동  (0) 2021.10.09
Framework와 CodeIgniter  (0) 2021.10.06
Comments