반응형

앞서 얘기한 적이 있는데 ci4를 브라우저에 접속하면 라우트에서 컨트롤러로 컨트롤러가 뷰를 지정해주면 그 파일을 화면에 보여주게 된다.

 

이 그림이다. 이제 이걸 소스로 확인해보자.

 

브라우저에 입력한 주소를 다시한번 보자.

 

http://localhost:8080/

 

이렇게 브라우저 주소창에 입력하면 기존의 php라면 무조건 index.php파일을 읽어오게 된다. 그것이 약속이다. 그래서 index.php 파일의 내용을 보여주게 된다. 

 

그럼 ci4는 어떨까. 아까 우리가 봤던 웰컴 화면은 어떤 파일을 본 것일까? ci4도 index.php 일까? 확인해보자.

 

VScode에서 소스를 찾아보자. 

 

/app/Config/Routes.php

 

파일을 열어보자. ci4는 사용자가 브라우저에 주소를 입력하면 제일 먼저 이 파일을 열어서 해당 주소가 있는지 확인한다. 그렇다. 이게 라우트다.

 

소스를 조금 내려보면 

 

$routes->get('/', 'Home::index');

 

이런 부분이 나온다. 우리가 입력한 주소 http://localhost:8080/ 는 마지막에 /로 끝났다. 라우트에도 이 부분이 정의돼 있다. 소스를 보면 / 이 값이 들어오면 'Home::index'로 가라고 지정돼 있다. 거기로 가보자.

 

그런데 Home은 어디로 가라는 걸까? 아까 얘기했듯이 컨트롤러로 가라는 거다. 컨트롤러에서 Home이라는 이름의 컨트롤러로 가라는 거다. 확인해보자.

 

컨트롤러는

 

/app/Controllers/Home.php

 

에 있다.

 

참으로 지랄맞지 않은가? 뭐가 이렇게 복잡한지. 하지만 지켜야한다. 그것이 규칙이므로.

 

자 다시 소스를 보자. 뭔가 무시무시하다. 생전 처음보는 글자들이 보인다. namespace가 뭐지? class라고? extends는 또 뭐지?...

 

무서워하지마라. 그런거 몰라도 된다. 우리가 알아야하는 건 그 아래에 있다. 늘 중요한건 아래에 있다.

 

public function index()
{
        return view('welcome_message');
}

 

좀전에 위에서 라우트를 확인할때 본 것이 있다. $routes->get('/', 'Home::index'); 요거다. 여기에 뭐라고 써져있나 하면 Home 다음에 오는게 index라고 써져있다. 이 index가 바로 Home.php 안에 들어 있는 함수 index()다.

 

한번더 생각해봐도 참 지랄맞게 만들었다. 하지만 이게 대세고 또 자꾸 하다보면 이게 편한 것도 있다.

 

index() 함수를 살펴보자. 

 

return view('welcome_message');

 

흠 뭔가 값을 리턴해준다는게 그게 view함수를 호출해서 파라미터 'welcome_message'를 던져줬다. 이게 무슨 말이냐 하면 위에서 설명한 뷰를 호출하는 것다. 소스를 찾아보자.

 

/app/Views/welcome_message.php

 

드디어 찾았다. 우리가 브라우저 창에 입력한 http://localhost:8080/ 이 주소는 결국 welcome_message.php 라는 파일을 열었던 것이다. 참으로 복잡하고 심오하게 만들어졌다. 어떻게 동작하는지 따위는 모르겠지만 뭔가 대단한것 같긴하다.

 

지금 안해본것은 디비를 연결해서 데이터를 가져오는 '모델(Model)'은 해보지 않았다. 그 부분은 차차 알아보자.

 

여기까지의 개념을 아는 것이 중요하다. 여기까지 개념이 이해가 안된다면 ci4를 배우긴 어렵다. 자꾸 읽어보면서 ci4가 어떻게 돌아가는지 이해해보도록 하자.

 

이제 게시판을 만들어볼건데 다 이런식이다. 접속 주소를 라우트에 입력해주고 거기서 컨트롤러를 컨트롤러에선 모델과 뷰를 뷰에서는 컨트롤러에서 받은 값을 뿌려준다. 

 

그럼 다음에 또~

반응형

+ Recent posts